User Tools

Site Tools


project:bioosm:start

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
Next revisionBoth sides next revision
project:bioosm:start [2018/08/27 22:55] – pridan taxonomator sachyproject:bioosm:start [2019/11/12 19:13] – springs sachy
Line 4: Line 4:
 name=Biologicke zbrane ve vasem okoli| name=Biologicke zbrane ve vasem okoli|
 image= bioosm:bioosm.jpg?400 | image= bioosm:bioosm.jpg?400 |
-founder=[[user:sachy:start]]|+founder=[[user:sachy]]|
 interested=[[user:sumie-dh]]| interested=[[user:sumie-dh]]|
 sw=CC-BY-SA| sw=CC-BY-SA|
Line 18: Line 18:
 ==== K cemu to je ==== ==== K cemu to je ====
  
-  *  interaktivni mapa vhodna k zobrazovani vetsiho mnozstvi fotek, brmlabi wiki, sluzby typu phtagr a soup se zdaly nevhodne k publikaci tohoto typu obsahu, wiki by byla prilis obludna, na beznych sdilecich obrazkovych sluzbach se neda nic pohodlne dohledavat a davat tam biologicky smysluplne a prehledne popisky +  * interaktivni mapa vhodna k zobrazovani vetsiho mnozstvi fotek, brmlabi wiki, sluzby typu phtagr a soup se zdaly nevhodne k publikaci tohoto typu obsahu, wiki by byla prilis obludna, na beznych sdilecich obrazkovych sluzbach se neda nic pohodlne dohledavat a davat tam biologicky smysluplne a prehledne popisky 
-  *  monitoring zivocichu a rostlin podle zajmu prispevovatelu  +  * monitoring zivocichu a rostlin podle zajmu prispevovatelu  
-  *  snadne klikaci katalogovani nalezu skrze Tellico nevyzadujici coding skills +  * snadne klikaci katalogovani nalezu skrze Tellico nevyzadujici coding skills 
-  *  TODO - jednoduche selekce zajmoveho okruhu subjektu [napr. podle rodu, biotopu, datumu] na mape+  * TODO - jednoduche selekce zajmoveho okruhu subjektu [napr. podle rodu, biotopu, datumu] na mape
   * procvicovani temne magie commandu grep, sed a regexpu   * procvicovani temne magie commandu grep, sed a regexpu
  
Line 31: Line 31:
  
 Pro nadsence je vygenerovany taky prehled prispevku plainlog.htm serazeny dle data pridani do databaze. Pro nadsence je vygenerovany taky prehled prispevku plainlog.htm serazeny dle data pridani do databaze.
 +
 +Pokud chcete vedet co je noveho, odebirejte projektovou [[http://brmlab.s0c4.net/bioosm/bioosm.rss|RSS]]
  
 Obrazky v plnem rozliseni jsou v podadresari "img", nahledy v "simg". Videa jsou nahrana na YT a misto nahledu maji generickou ikonu. Obrazky v plnem rozliseni jsou v podadresari "img", nahledy v "simg". Videa jsou nahrana na YT a misto nahledu maji generickou ikonu.
Line 105: Line 107:
 # Print result to stdout # Print result to stdout
 # #
-find ./ -type f -exec mogrify -verbose -layers Dispose -resize 128\>x128\-quality 100% {} + +<iframe width="500" height="500" frameborder="0" scrolling="no" marginheight="0" marginwidth="0" src="https://www.openstreetmap.org/export/embed.html?bbox=14.978000%2C49.990000%2C15.022000%2C50.010000&amp;layer=mapnik&amp;marker=50.000000%2C15.000000"></iframe>
-#+
 # // vectorLayer.removeFeatures(atol) # // vectorLayer.removeFeatures(atol)
 # // map.removeLayer(vectorLayer) # // map.removeLayer(vectorLayer)
Line 112: Line 113:
 # #
 # Creates: # Creates:
-#   (to stdout) index.htm file with the map and static entries+#   (to stdout) HTML file with the map and static entries
 #   ./det/ID.htm details of each and every entry #   ./det/ID.htm details of each and every entry
 +#   ./bioosm.json JSON of all entries
 +#   ./bioosm.rss updated RSS feed
 +#   ./plainlog.htm sorted entries for easy human/alg
 # #
  
Line 129: Line 133:
  
 json="" json=""
 +
 +rss=$'<?xml version="1.0" encoding="UTF-8" ?>\n'
 +rss+=$'<rss version="2.0">\n'
 +rss+=$'<channel>\n'
 +rss+=$'<title>Brmlab BioOSM RSS feed</title>\n'
 +rss+=$'<description>New entries on BioOSM database</description>\n'
 +rss+=$'<link>https://bioosm.s0c4.net</link>\n'
 +rss+=$'<lastBuildDate></lastBuildDate>\n'
 +rss+=$'<pubDate></pubDate>\n'
 +rss+=$'<ttl>86400</ttl>\n'
  
 # Return icon by Regnum # Return icon by Regnum
Line 177: Line 191:
  obr=$(echo "$radek" | grep -oe ' <image>.*</image> ' | sed -E 's/( )*<(\/)?image>( )*//g' | grep -oPe '[^/]*$')  obr=$(echo "$radek" | grep -oe ' <image>.*</image> ' | sed -E 's/( )*<(\/)?image>( )*//g' | grep -oPe '[^/]*$')
  obr=$(safehtml "$obr")  obr=$(safehtml "$obr")
- kde=$(echo "$radek" | grep -oe '<locality>.*</locality>' | grep -oPe '[0-9]{2}\.[0-9]{1,10}[, ]*[0-9]{2}\.[0-9]{1,10}')+ kde=$(echo "$radek" | grep -oe '<locality>.*</locality>' | grep -oPe '[0-9]+\.[0-9]{1,10}[, ]*[0-9]+\.[0-9]{1,10}')
  kde=$(safehtml "$kde")  kde=$(safehtml "$kde")
- kdex=$(echo "$kde" | grep -oPe '[0-9]{2}\.[0-9]{1,10}$')+ kdex=$(echo "$kde" | grep -oPe '[0-9]+\.[0-9]{1,10}$')
  kdex=$(safehtml "$kdex")  kdex=$(safehtml "$kdex")
- kdey=$(echo "$kde" | grep -oPe '^[0-9]{2}\.[0-9]{1,10}')+ kdey=$(echo "$kde" | grep -oPe '^[0-9]+\.[0-9]{1,10}')
  kdey=$(safehtml "$kdey")  kdey=$(safehtml "$kdey")
  kdy=$(echo "$radek" | grep -oe ' <taken-date>.*</taken-date> ' | sed -E 's/( )*<(\/)?taken-date>( )*//g' | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]{4})/\3-\2-\1/g' | sed -E 's/-([0-9])-/-0\1-/g' | sed -E 's/-([0-9])$/-0\1/g')  kdy=$(echo "$radek" | grep -oe ' <taken-date>.*</taken-date> ' | sed -E 's/( )*<(\/)?taken-date>( )*//g' | sed -E 's/([0-9]+)\.([0-9]+)\.([0-9]{4})/\3-\2-\1/g' | sed -E 's/-([0-9])-/-0\1-/g' | sed -E 's/-([0-9])$/-0\1/g')
Line 219: Line 233:
  lnk=$(echo "$radek" | grep -oe ' <localitylink>.*</localitylink> ' | sed -E 's/( )*<(\/)?localitylink>( )*//g')  lnk=$(echo "$radek" | grep -oe ' <localitylink>.*</localitylink> ' | sed -E 's/( )*<(\/)?localitylink>( )*//g')
  lnk=$(safehtml "$lnk")  lnk=$(safehtml "$lnk")
 + har=$(echo "$radek" | grep -oe ' <harvesting-method>.*</harvesting-method> ' | sed -E 's/( )*<(\/)?harvesting-method>( )*//g')
 + den=$(echo "$radek" | grep -oe ' <population-density>.*</population-density> ' | sed -E 's/( )*<(\/)?population-density>( )*//g')
 + dur=$(echo "$radek" | grep -oe ' <min>.*</min> ' | sed -E 's/( )*<(\/)?min>( )*//g')
 + lor=$(echo "$radek" | grep -oe ' <locality-reference>.*</locality-reference> ' | sed -E 's/( )*<(\/)?locality-reference>( )*//g')
 + lrl=$(echo "$radek" | grep -oe ' <locality-reference---link>.*</locality-reference---link> ' | sed -E 's/( )*<(\/)?locality-reference---link>( )*//g')
 + lov=$(echo "$radek" | grep -oe ' <locality---vobrazek>.*</locality---vobrazek> ' | sed -E 's/( )*<(\/)?locality---vobrazek>( )*//g' | grep -oPe '[^/]*$')
 +
 + # >&2 echo "$co - $har - $den - $dur - $lor - $lrl - $lov"
 +
  detid=$(echo "brmlab$co$obr$kde$kdy" | md5sum | grep -oe '[a-zA-Z0-9]*')  detid=$(echo "brmlab$co$obr$kde$kdy" | md5sum | grep -oe '[a-zA-Z0-9]*')
  
  if [[ "$kdex" = "" ]]; then  if [[ "$kdex" = "" ]]; then
- >&2 echo $(echo "$radek" | grep -oe '<locality>.*</locality>') " $co"+ >&2 echo -e "\033[31m" $(echo "$radek" | grep -oe '<locality>.*</locality>') " $co\033[0m"
  continue;  continue;
  fi  fi
  zkurvenetellico=$(echo "$obr" | grep -oe '\.[a-zA-Z]*$')  zkurvenetellico=$(echo "$obr" | grep -oe '\.[a-zA-Z]*$')
  if [[ "$zkurvenetellico" = ".jpeg" ]]; then  if [[ "$zkurvenetellico" = ".jpeg" ]]; then
- >&2 echo "$obr $co"+ >&2 echo -e "\033[31m$obr $co\033[0m"
  continue;  continue;
  fi  fi
Line 237: Line 260:
  fi  fi
  
- json="$json{" + json+="{" 
- json="$json \"qualis\":\"$co\"," + json+=" \"qualis\":\"$co\"," 
- json="$json \"imperium\":\"$imp\"," + json+=" \"imperium\":\"$imp\"," 
- json="$json \"regnum\":\"$reg\"," + json+=" \"regnum\":\"$reg\"," 
- json="$json \"phylum\":\"$phy\"," + json+=" \"phylum\":\"$phy\"," 
- json="$json \"classis\":\"$cla\"," + json+=" \"classis\":\"$cla\"," 
- json="$json \"ordo\":\"$ord\"," + json+=" \"ordo\":\"$ord\"," 
- json="$json \"familia\":\"$fam\"," + json+=" \"familia\":\"$fam\"," 
- json="$json \"genus\":\"$gen\"," + json+=" \"genus\":\"$gen\"," 
- json="$json \"specie\":\"$spe\"," + json+=" \"specie\":\"$spe\"," 
- json="$json \"locus\":\"$kde\"," + json+=" \"locus\":\"$kde\"," 
- json="$json \"x\":\"$kdex\"," + json+=" \"x\":\"$kdex\"," 
- json="$json \"y\":\"$kdey\"," + json+=" \"y\":\"$kdey\"," 
- json="$json \"locplain\":\"$loc\"," + json+=" \"locplain\":\"$loc\"," 
- json="$json \"depictio\":\"$des\"," + json+=" \"depictio\":\"$des\"," 
- json="$json \"quando\":\"$kdy\"," + json+=" \"quando\":\"$kdy\"," 
- json="$json \"obr\":\"$obr\"," + json+=" \"obr\":\"$obr\"," 
- json="$json \"micro\":\"$skop\"," + json+=" \"micro\":\"$skop\"," 
- json="$json \"microtyp\":\"$skop_typ\"," + json+=" \"microtyp\":\"$skop_typ\"," 
- json="$json \"vid\":\"$vid\"," + json+=" \"vid\":\"$vid\"," 
- json="$json \"bio\":\"$bio\"," + json+=" \"bio\":\"$bio\"," 
- json="$json \"amp\":\"$eng\"," + json+=" \"amp\":\"$eng\"," 
- json="$json \"spec\":\"$obs\"," + json+=" \"spec\":\"$obs\"," 
- json="$json \"detid\":\"$detid\"," + json+=" \"detid\":\"$detid\"," 
- json="$json \"lnk\":\"$lnk\"" # Lastone without ',' + json+=" \"har\":\"$har\"," 
- json="$json },"+ json+=" \"den\":\"$den\"," 
 + json+=" \"dur\":\"$dur\"," 
 + json+=" \"lor\":\"$lor\"," 
 + json+=" \"lrl\":\"$lrl\"," 
 + json+=" \"lov\":\"$lov\"," 
 + json+=" \"lnk\":\"$lnk\"" # Lastone without ',' 
 + json+="}," 
 + 
 + 
 + rss+=$'<item>\n' 
 + rss+=$'  <title>'"$co"$'</title>\n' 
 + rss+=$'  <description>'"$des"$'</description>\n' 
 + rss+=$'  <link>http://brmlab.s0c4.net/bioosm/det/'"$detid"$'.htm</link>\n' 
 + rss+=$'  <guid isPermaLink="false">'"$detid"$'</guid>\n' 
 + rss+=$'  <pubDate>'"$kdy"$'</pubDate>\n' 
 + rss+=$'</item>\n'
  
  
Line 268: Line 306:
  detid=$(echo "brmlab$co$obr$kde$kdy" | md5sum | grep -oe '[a-zA-Z0-9]*')  detid=$(echo "brmlab$co$obr$kde$kdy" | md5sum | grep -oe '[a-zA-Z0-9]*')
  detpg="<html><head>"  detpg="<html><head>"
- detpg="$detpg<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" + detpg+="<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" 
- detpg="$detpg<link rel='stylesheet' href='../style.css' type='text/css'>" + detpg+="<link rel='stylesheet' href='../style.css' type='text/css'>" 
- detpg="$detpg<title>Brmlab - BioOSM $co $kde</title>" + detpg+="<title>Brmlab - BioOSM $co $kde</title>" 
- detpg="$detpg</head><body>" + detpg+="</head><body>" 
- detpg="$detpg<table class='dettbl'><tr>" + detpg+="<table class='dettbl'><tr>" 
- detpg="$detpg<td><h1>$co (<a href='$wikisp' target='_blank'>wiki</a>)</h1>"+ detpg+="<h1>$co (<a href='$wikisp' target='_blank'>wiki</a>)</h1>" 
 + detpg+="<td style='width:33%;vertical-align:top'>"
  if [[ "$imp" != "" ]]; then  if [[ "$imp" != "" ]]; then
- detpg="$detpg<b>Imperium:</b> <a href='https://en.wikipedia.org/wiki/$imp' target='_blank'>$imp</a><br>"+ detpg+="<b>Imperium:</b> <a href='https://en.wikipedia.org/wiki/$imp' target='_blank'>$imp</a><br>"
  fi  fi
  if [[ "$reg" != "" ]]; then  if [[ "$reg" != "" ]]; then
- detpg="$detpg<b>Regnum:</b> <a href='https://en.wikipedia.org/wiki/$reg' target='_blank'>$reg</a><br>"+ detpg+="<b>Regnum:</b> <a href='https://en.wikipedia.org/wiki/$reg' target='_blank'>$reg</a><br>"
  fi  fi
  if [[ "$phy" != "" ]]; then  if [[ "$phy" != "" ]]; then
- detpg="$detpg<b>Phylum:</b> <a href='https://en.wikipedia.org/wiki/$phy' target='_blank'>$phy</a><br>"+ detpg+="<b>Phylum:</b> <a href='https://en.wikipedia.org/wiki/$phy' target='_blank'>$phy</a><br>"
  fi  fi
  if [[ "$cla" != "" ]]; then  if [[ "$cla" != "" ]]; then
- detpg="$detpg<b>Classis:</b> <a href='https://en.wikipedia.org/wiki/$cla' target='_blank'>$cla</a><br>"+ detpg+="<b>Classis:</b> <a href='https://en.wikipedia.org/wiki/$cla' target='_blank'>$cla</a><br>"
  fi  fi
  if [[ "$ord" != "" ]]; then  if [[ "$ord" != "" ]]; then
- detpg="$detpg<b>Ordo:</b> <a href='https://en.wikipedia.org/wiki/$ord' target='_blank'>$ord</a><br>"+ detpg+="<b>Ordo:</b> <a href='https://en.wikipedia.org/wiki/$ord' target='_blank'>$ord</a><br>"
  fi  fi
  if [[ "$fam" != "" ]]; then  if [[ "$fam" != "" ]]; then
- detpg="$detpg<b>Familia:</b> <a href='https://en.wikipedia.org/wiki/$fam' target='_blank'>$fam</a><br>"+ detpg+="<b>Familia:</b> <a href='https://en.wikipedia.org/wiki/$fam' target='_blank'>$fam</a><br>"
  fi  fi
  if [[ "$gen" != "" ]]; then  if [[ "$gen" != "" ]]; then
- detpg="$detpg<b>Genus:</b> <a href='https://en.wikipedia.org/wiki/$gen' target='_blank'>$gen</a><br>"+ detpg+="<b>Genus:</b> <a href='https://en.wikipedia.org/wiki/$gen' target='_blank'>$gen</a><br>"
  fi  fi
  if [[ "$spe" != "" ]]; then  if [[ "$spe" != "" ]]; then
- detpg="$detpg<b>Specie:</b> <a href='$wikisp' target='_blank'>$spe</a><br>"+ detpg+="<b>Specie:</b> <a href='$wikisp' target='_blank'>$spe</a><br>"
  fi  fi
- detpg="$detpg<br>"+ detpg+="<br>"
  if [[ "$kdy" != "" ]]; then  if [[ "$kdy" != "" ]]; then
- detpg="$detpg<b>Quando:</b> $kdy<br>"+ detpg+="<b>Quando:</b> $kdy<br>"
  fi  fi
  if [[ "$lnk" != "" ]]; then  if [[ "$lnk" != "" ]]; then
  loc="<a href=\"$lnk\" target=\"_blank\">$loc</a>" # Yes, escaped "  loc="<a href=\"$lnk\" target=\"_blank\">$loc</a>" # Yes, escaped "
  fi  fi
- detpg="$detpg<b>Locus:</b> $kde ($loc)<br>"+ detpg+="<b>Locus:</b> $kde ($loc)<br>"
  if [[ "$obs" != "" ]]; then  if [[ "$obs" != "" ]]; then
- detpg="$detpg<b>Spectator:</b> $obs<br>"+ detpg+="<b>Spectator:</b> $obs<br>"
  fi  fi
  if [[ "$bio" != "" ]]; then  if [[ "$bio" != "" ]]; then
- detpg="$detpg<b>Biotope:</b> $bio<br>"+ detpg+="<b>Biotope:</b> $bio<br>"
  fi  fi
- detpg="$detpg<br>" 
  if [[ "$skop" != "" ]]; then  if [[ "$skop" != "" ]]; then
- detpg="$detpg<b>Microscopium:</b> $skop ($skop_typ)<br>"+ detpg+="<b>Microscopium:</b> $skop ($skop_typ)<br>"
  fi  fi
  if [[ "$eng" != "" ]]; then  if [[ "$eng" != "" ]]; then
- detpg="$detpg<b>Amplificatio:</b> $eng<br>" + detpg+="<b>Amplificatio:</b> $eng<br>"
- fi +
- detpg="$detpg<br>" +
- if [[ "$des" != "" ]]; then +
- detpg="$detpg<b>Depictio:</b> $des<br>"+
  fi  fi
  if [[ "$vid" != "" ]]; then  if [[ "$vid" != "" ]]; then
- detpg="$detpg<b>Video:</b> <a href=\"$vid\" target=\"_blank\">$vid</a><br>"+ detpg+="<b>Video:</b> <a href=\"$vid\" target=\"_blank\">$vid</a><br>"
  fi  fi
- detpg="$detpg</td><td style='min-width:66%'>"+ if [[ "$har" != "" ]]; then 
 + detpg+="<b>Collecting method:</b> $har<br>" 
 + fi 
 + if [[ "$den" != "" ]]; then 
 + detpg+="<b>Individuals found:</b> $den<br>" 
 + fi 
 + if [[ "$dur" != "" ]]; then 
 + detpg+="<b>Duration on stage:</b> $dur<br>" 
 + fi 
 + if [[ "$lrl" != "" ]]; then 
 + detpg+="<b>Locality reference:</b> <a href=\"$lrl\" target=\"_blank\">$lor</a><br>" 
 + elif [[ "$lor" != "" ]]; then 
 + detpg+="<b>Locality reference:</b> $lor<br>" 
 + fi 
 + if [[ "$des" != "" ]]; then 
 + detpg+="<b>Depictio:</b> $des<br>" 
 + fi 
 + detpg+="<br><b>More on <a href=\"../\">BioOSM map</a></b><br>" 
 + detpg+="<br>" 
 + 
 + lhx=$(echo "$kdex-0.022" | bc) 
 + lhy=$(echo "$kdey-0.010" | bc) 
 + pdx=$(echo "$kdex+0.022" | bc) 
 + pdy=$(echo "$kdey+0.010" | bc) 
 + detpg+="<iframe id='minimapa' src='https://www.openstreetmap.org/export/embed.html?bbox=$lhx%2C$lhy%2C$pdx%2C$pdy&amp;layer=mapnik&amp;marker=$kdey%2C$kdex'></iframe>" 
 + detpg+="</td><td style='min-width:66%;vertical-align:top'>" 
  if [[ "$obr" != "" ]]; then  if [[ "$obr" != "" ]]; then
- detpg="$detpg<a href=\"../img/$obr\"><img src=\"../img/$obr\" alt=\"$co\" class='detimg'></a>"+ detpg+="<a href=\"../img/$obr\"><img src=\"../img/$obr\" alt=\"$co\" class='detimg'></a>"
  else  else
  if [[ "$vid" != "" ]]; then  if [[ "$vid" != "" ]]; then
  detyt=$(echo "$vid" | sed -e 's/youtube.com\/watch?v=/youtube.com\/embed\//g')  detyt=$(echo "$vid" | sed -e 's/youtube.com\/watch?v=/youtube.com\/embed\//g')
- detpg="$detpg<iframe class='detvid' src='$detyt' frameborder='0' allow='encrypted-media' allowfullscreen></iframe>"+ detpg+="<iframe class='detvid' src='$detyt' frameborder='0' allow='encrypted-media' allowfullscreen></iframe>"
  else  else
- detpg="$detpg<img src=\"../$3\" alt=\"video\" class='detimg'>"+ detpg+="<img src=\"../$3\" alt=\"video\" class='detimg'>"
  fi  fi
  fi  fi
- detpg="$detpg</td></tr></table>" + if [[ "$lov" != "" ]]; then 
- detpg="$detpg</body></html>"+ detpg+="<img class=\"detimg\" src=\"../lokality/$lov\" alt=\"Locality photo\"><br>" 
 + fi 
 + 
 + detpg+="</td></tr></table>" 
 + detpg+="</body></html>"
  echo "$detpg" > "./det/$detid.htm"  echo "$detpg" > "./det/$detid.htm"
  
  # Plain log of entries  # Plain log of entries
- datelog="$datelog $kdy $kde <a href='./det/$detid.htm' target='_blank'>$co</a><br>\n"+ datelog+="$kdy $kde <a href='./det/$detid.htm' target='_blank'>$co</a><br>\n"
  
- >&2 echo "$co $obs"+ >&2 echo -e "\033[32m$co $obs\033[0m"
  
  ox="$kdex"  ox="$kdex"
Line 354: Line 418:
  echo "$json{}]}" | sed -e "s/^var data='//g" > "./bioosm.json"  echo "$json{}]}" | sed -e "s/^var data='//g" > "./bioosm.json"
  echo "$json{}]}'"  echo "$json{}]}'"
 +
 + rss+=$'</channel>\n'
 + rss+=$'</rss>\n'
 + echo "$rss" > "./bioosm.rss"
  
 } # KONEC FCE SPAGETY } # KONEC FCE SPAGETY
Line 376: Line 444:
 echo '<body>' echo '<body>'
 # Generate select # Generate select
-echo "<div id='plainlog'><b><a href='./plainlog.htm'>Plaintext log</a></b></div>"+echo "<div id='plainlog'><b><a href='./bioosm.rss'>RSS feed</a><br><a href='./plainlog.htm'>Quick news log</a></b></div>"
 echo "<h1 id='title'>BioOSM - arma biologica in tuis vicinia</h1>" echo "<h1 id='title'>BioOSM - arma biologica in tuis vicinia</h1>"
 ksel="<select id='reg' onChange='genphy()'>" ksel="<select id='reg' onChange='genphy()'>"
Line 393: Line 461:
 echo "Specie: <select id='spe' onChange='armageddon()'><option>ALL</option></select>" echo "Specie: <select id='spe' onChange='armageddon()'><option>ALL</option></select>"
 echo "<br><input type='button' value='Platyhelminthes' onClick='plostenkoidy()'>" echo "<br><input type='button' value='Platyhelminthes' onClick='plostenkoidy()'>"
 +echo "<input type='checkbox' id='studchecker' onChange='studdrv()'>&nbsp;Springs"
 #echo "<input type='button' value='Bugs' onClick='buggy()'>" #echo "<input type='button' value='Bugs' onClick='buggy()'>"
 echo "<br><br><div id='map' class='smallmap'></div>" echo "<br><br><div id='map' class='smallmap'></div>"
Line 429: Line 498:
 # Create plaintext log # Create plaintext log
 dateloghtm="<html><head>" dateloghtm="<html><head>"
-dateloghtm="$dateloghtm<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" +dateloghtm+="<meta http-equiv='Content-Type' content='text/html; charset=utf-8'>" 
-dateloghtm="$dateloghtm<link rel='stylesheet' href='./style.css' type='text/css'>" +dateloghtm+="<link rel='stylesheet' href='./style.css' type='text/css'>" 
-dateloghtm="$dateloghtm<title>Brmlab - BioOSM plaintext log</title>" +dateloghtm+="<title>Brmlab - BioOSM plaintext log</title>" 
-dateloghtm="$dateloghtm</head><body>"+dateloghtm+="</head><body>"
 datelogsort=$(echo -e "$datelog" | sort -r | uniq) datelogsort=$(echo -e "$datelog" | sort -r | uniq)
-dateloghtm="$dateloghtm $datelogsort" +dateloghtm+="$datelogsort" 
-dateloghtm="$dateloghtm</body></html>"+dateloghtm+="</body></html>"
 echo "$dateloghtm" > "./plainlog.htm" echo "$dateloghtm" > "./plainlog.htm"
 </code> </code>
Line 444: Line 513:
 var blob=JSON.parse(data) var blob=JSON.parse(data)
 var arma=blob.arma var arma=blob.arma
 +var stud=JSON.parse('{}');
  
 var vectorLayerDynamic = new OpenLayers.Layer.Vector('Overlay',{attribution:'<a href="http://brmlab.cz">Brmlab</a>'}); var vectorLayerDynamic = new OpenLayers.Layer.Vector('Overlay',{attribution:'<a href="http://brmlab.cz">Brmlab</a>'});
 map.addLayer(vectorLayerDynamic); map.addLayer(vectorLayerDynamic);
 +var studlay = new OpenLayers.Layer.Vector("Overlay",{attribution:"<a href=\"http://brmlab.cz\">Brmlab</a>"}); // studanky
 +map.addLayer(studlay);
  
 var regsel=document.getElementById("reg") var regsel=document.getElementById("reg")
Line 464: Line 536:
 var ICON_protista="protista.png" var ICON_protista="protista.png"
 var ICON_biohazard="biohazard.svg" var ICON_biohazard="biohazard.svg"
 +var ICON_studanka="studanka.png"
 +
 +function getJSONstud()
 +{
 + url="./stud.json";
 + var request;
 + if(window.XMLHttpRequest)
 + request=new XMLHttpRequest();
 + else
 + request=new ActiveXObject("Microsoft.XMLHTTP");
 + request.onreadystatechange=function()
 + {
 + if(request.readyState==4)
 + {
 + stud=JSON.parse(request.responseText);
 + studdraw(stud);
 + }
 + }
 + request.open("GET",url,true);
 + request.send();
 +}
 +
 +function studdraw(sj)
 +{
 + studlay.destroyFeatures();
 + sjs=stud.std;
 + s=[];
 +
 + for(i=0;i<sjs.length;i++)
 + {
 + s[i] = new OpenLayers.Feature.Vector(new OpenLayers.Geometry.Point(sjs[i].lon,sjs[i].lat).transform(epsg4326,projectTo),{'description':"<table class=\"hadtbl\">"+sjs[i].name+"</table>"},{'externalGraphic':ICON_studanka,'graphicHeight':24,'graphicWidth':24,'graphicXOffset':-12,'graphicYOffset':-12});
 + studlay.addFeatures(s[i]);
 + }
 +}
 +
 +function studdrv()
 +{
 + box=document.getElementById("studchecker");
 + if(box.checked)
 + getJSONstud();
 + else
 + studlay.destroyFeatures();
 +}
  
 // Return icon by Regnum // Return icon by Regnum
Line 868: Line 983:
 } // Konec armageddonu } // Konec armageddonu
  
-var laycon = [vectorLayer,vectorLayerDynamic];+var laycon = [vectorLayer,vectorLayerDynamic,studlay];
  
 var controls = {selector: new OpenLayers.Control.SelectFeature(laycon, { onSelect: createPopup, onUnselect: destroyPopup })}; var controls = {selector: new OpenLayers.Control.SelectFeature(laycon, { onSelect: createPopup, onUnselect: destroyPopup })};
Line 897: Line 1012:
 </code> </code>
  
-==== Taxonomie dle rodoveho jmena ====+==== Springs ====
  
-Script bere jako jediny parametr rodove jmeno z wikipedie vyparsuje zbytek taxonomie+To be able to better plan routes for collecting planarians, the knowledge of locations of springs seems to be important. So BioOSM can show them! Below is script to get the locations from OSM XMLs obtainable from [[http://osm.kyblsoft.cz/archiv/]]. 
-<code bash tax.sh>+ 
 +<code bash studanky.sh>
 #!/bin/bash #!/bin/bash
 +# generate BioOSM compatible "springs"
 +# Usage: studanky.sh osmdump.xml
 +
 +# Download OSM file to be passed as $1
 +# wget "http://osm.kyblsoft.cz/archiv/czech_republic-2019-11-03.osm.gz"
 +# gzip -kd ./czech_republic-2019-11-03.osm.gz
 +#
 +# Pozor ^^ sezere spoustu rameti
 +#
 +
 +osm=$(cat "$1" | sed -e 's/<node/\'$'\a<node/g' -e 's/<\/node>/<\/node\'$'\a/g' -e 's/<way/\'$'\a<way/g' -e 's/<\/way>/<\/way>\'$'\a/g' -e 's/<relation/\'$'\a<relation/g' -e 's/<\/relation>/<\/relation>\'$'\a/g' | tr -d '\n' | tr '\a' '\n' | grep 'v="spring"' | grep 'k="natural"')
 +
 +json='{"version":"'$(date --rfc-3339=seconds)'","std":['
 +
 +while IFS='' read -r spr || [[ -n "$spr" ]]; do
 + n=$(echo "$spr" | grep -oPe 'k="name" v="[^"]*"' | sed -e 's/k="name" v="//g' -e 's/"$//g')
 + lat=$(echo "$spr" | grep -oPe ' lat="[^"]*"' | sed -e 's/ lat="//g' -e 's/"$//g')
 + lon=$(echo "$spr" | grep -oPe ' lon="[^"]*"' | sed -e 's/ lon="//g' -e 's/"$//g')
 +
 + if [ "$lat" = "" ] || [ "$lon" = "" ]; then
 + continue; # <way> a tak
 + fi
 + if [[ "$n" = "" ]]; then
 + n="inkognito"
 + >&2 echo -e "\033[34m $lat $lon \033[0m";
 + fi
 +
 + json+="{"
 + json+=" \"name\":\"$n\","
 + json+=" \"lon\":\"$lon\","
 + json+=" \"lat\":\"$lat\""
 + json+="},"
 +
 + >&2 echo -e "\033[32m $n $lat $lon\033[0m"
  
-wat=$(wget -q -O - "https://en.wikipedia.org/wiki/Template:Taxonomy/$1" 2>/dev/null | tr -d '\n' | sed -e $'s/<\/tr>/<\/tr>\\n/g' | grep "<tr>" | sed -e 's/<[^>]*>//g' | grep -o -e "^[a-zA-Z]*:[a-zA-Z]*")+done <<< $(echo "$osm")
  
-echo $(echo "$wat" | grep "Domain:"+echo "$json{}]}"
-echo $(echo "$wat" | grep "Kingdom:"+
-echo $(echo "$wat" | grep "Phylum:"+
-echo $(echo "$wat" | grep "Class:"+
-echo $(echo "$wat" | grep "Order:"+
-echo $(echo "$wat" | grep "Family:"+
-echo $(echo "$wat" | grep "Genus:")+
 </code> </code>
project/bioosm/start.txt · Last modified: 2023/09/21 12:15 by sachy