diff options
-rw-r--r-- | README.md | 105 | ||||
-rw-r--r-- | img/doaresoajvve.png | bin | 0 -> 897678 bytes | |||
-rw-r--r-- | img/gallok.png | bin | 0 -> 1398484 bytes | |||
-rw-r--r-- | img/jokkmokk.png | bin | 0 -> 1446694 bytes | |||
-rw-r--r-- | template.html | 107 |
5 files changed, 212 insertions, 0 deletions
diff --git a/README.md b/README.md new file mode 100644 index 0000000..7713635 --- /dev/null +++ b/README.md @@ -0,0 +1,105 @@ +Summary +======= + +Script to create a QGIS project with observations of Plantae and Fungi +from [SLU Artdatabanken][]. + +Observations are retrieved using SLU Artdatabanken's [Species Observation System API][], +which aggregates data from multiple sources such as [Artportalen][] +and [MVM environmental data][]. + +Background topographic maps from [Lantmäteriet][Lantmäteriet Product List]. + +[SLU Artdatabanken]: https://www.artdatabanken.se/ +[Species Observation System API]: https://www.artdatabanken.se/tjanster-och-miljodata/oppna-data-och-apier/om-artdatabankens-apier/api-for-artobservationer-fran-flera-datakallor/ +[Artportalen]: https://artportalen.se +[MVM environmental data]: https://miljodata.slu.se/mvm/ +[Lantmäteriet Product List]: https://www.lantmateriet.se/sv/geodata/vara-produkter/produktlista/#category=geografiskinformation. + + +Usage +===== + +``` +$ gis-observation-map --help +usage: gis-observation-map --project-home=DIR --project-name=NAME {--geometry=FILE|--point=Y,X} ... + gis-observation-map --observation-file=NAME {--geometry=FILE|--point=Y,X} ... + +Create a QGIS project with observations from Artdatabanken. + +options: + -h, --help show this help message and exit + --project-home DIRECTORY + Project home directory + --project-name NAME Project filename (and title) relative to --project-home + --topo-basedir DIRECTORY + Base directory for "Topografi 10", "Topografi 50", etc. + +Geographic area of interest: + --geometry-style STYLE_FILE + QGIS Layer Style File (*.qml) to apply to subsequent geometry files + --geometry-layername NAME + Layer names for subsequent geometry files + --geometry GEOMETRY_FILE + Geometry file of interest + --point [Y,X ...] Coordinates of interest (in SWEREF99 TM) + --margin N Margin (in meters) around geometry envelopes + +Observations: + --no-observations Do not fetch observations within the area(s) of interest + --observation-file NAME + Observation file name relative to --project-home + --observation-format FORMAT + Format for the observation file + --observation-style STYLE_FILE + QGIS Layer Style File (*.qml) to apply to the observation layer (default: ~/gis/Inventeringar/fynd.qml) + +Search filter: + --data-provider [IDENTIFIER ...] + Data provider identifier(s), for instance "Artportalen,MVM" + --since YYYY-MM-DD Start date for observations in ISO 8601 format + --until YYYY-MM-DD End date for observations in ISO 8601 format +``` + +Examples +======== + +Map with observations found in a 10km-wide square centered around +Jokkmokk, Norrbotten. + +``` +$ gis-observation-map --margin 5000 --point 7395788,713523 \ + --project-name=Jokkmokk --project-home=/path/to/Jokkmokk +1516 observations found +``` + +![Jokkmokk](img/jokkmokk.png) + + +Map with observations in or nearby [exploration permits and processing +concessions][SGU Mineralrättigheter]. + +``` +$ gis-observation-map --margin 2500 \ + --geometry-style /path/to/Mineralrättigheter.qml --geometry /path/to/jokkmokk-sgu.geojson \ + --project-name=Gruvor --project-home=/path/to/Jokkmokk-Mineral +5304 observations found +``` + +Zoom in on the Gállok area (Jokkmokk Municipality, Norrbotten). + +![Gállok](img/gallok.png) + +Showing details for a specific observation near Doaresoajvve (Jokkmokk +Municipality, Norrbotten). + +![Doaresoajvve](img/doaresoajvve.png) + +[SGU Mineralrättigheter]: https://apps.sgu.se/kartvisare/kartvisare-mineralrattigheter.html + +[Contribute](https://git.guilhem.org/gis-observation-map/about/) +============ + +``` +$ git clone https://git.guilhem.org/gis-observation-map.git +``` diff --git a/img/doaresoajvve.png b/img/doaresoajvve.png Binary files differnew file mode 100644 index 0000000..92aeef7 --- /dev/null +++ b/img/doaresoajvve.png diff --git a/img/gallok.png b/img/gallok.png Binary files differnew file mode 100644 index 0000000..21402d1 --- /dev/null +++ b/img/gallok.png diff --git a/img/jokkmokk.png b/img/jokkmokk.png Binary files differnew file mode 100644 index 0000000..8c43f8c --- /dev/null +++ b/img/jokkmokk.png diff --git a/template.html b/template.html new file mode 100644 index 0000000..0a7cede --- /dev/null +++ b/template.html @@ -0,0 +1,107 @@ +<!DOCTYPE html> +<html xmlns="http://www.w3.org/1999/xhtml" lang="$lang$" xml:lang="$lang$"$if(dir)$ dir="$dir$"$endif$> +<head> + <meta charset="utf-8" /> + <meta name="generator" content="pandoc" /> + <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" /> +$for(author-meta)$ + <meta name="author" content="$author-meta$" /> +$endfor$ +$if(date-meta)$ + <meta name="dcterms.date" content="$date-meta$" /> +$endif$ +$if(keywords)$ + <meta name="keywords" content="$for(keywords)$$keywords$$sep$, $endfor$" /> +$endif$ + <title>$if(title-prefix)$$title-prefix$ – $endif$$pagetitle$</title> + <style> + code{white-space: pre-wrap;} + span.smallcaps{font-variant: small-caps;} + span.underline{text-decoration: underline;} + div.column{display: inline-block; vertical-align: top; width: 50%;} + table{width: 100%; margin-bottom: 3ex;} + table > thead > tr.header > th{border-bottom: 2px solid #ddd; padding: 8px;} + table > tbody > tr > td{border-bottom: 1px solid #ddd; padding: 6px;} + pre { + padding: 16px; + font-size: 85%; + line-height: 1.45; + background-color: #f6f8fa; + border-radius: 6px; + tab-size: 4; + -moz-tab-size: 4; + } + figure img { + max-width: 100%; + } + figcaption { + font-size: 85%; + font-style: italic; + } + @media only screen and (min-width: 600px) { + .parent { + float: right; + margin-left: 1em; + } + .content p { + text-align: justify; + } + } + @media(max-width: 1440px) { .container{ max-width: 1080px; } } + @media(max-width: 1280px) { .container{ max-width: 960px; } } + @media(max-width: 1024px) { .container{ max-width: 768px; } } +$if(quotes)$ + q { quotes: "“" "”" "‘" "’"; } +$endif$ + </style> +$if(highlighting-css)$ + <style type="text/css"> +$highlighting-css$ + </style> +$endif$ +$for(css)$ + <link rel="stylesheet" href="$css$" /> +$endfor$ +$if(math)$ + $math$ +$endif$ +$for(header-includes)$ + $header-includes$ +$endfor$ +</head> + +<body> +$for(include-before)$ +$include-before$ +$endfor$ +<div class="container"> + <div class="content"> +$if(title)$ + <div class="page-header"> +$if(parent)$ + <div class=parent><a href="$parent$"><span class="fa fa-arrow-circle-up" aria-hidden="true"></span> Parent</a></div> +$endif$ + <h1 style="">$title$</h1> + </div> +$endif$ + +$body$ + </div> + + <footer> + <hr/> + <div class="row"> + <div class="col-md-8 text-muted"> +$if(author)$ + <a href="https://git.guilhem.org/gis-observation-map/plain/COPYING">Copyright</a> © + $for(author)$$author$$sep$, $endfor$ +$endif$ + </div> + <div class="col-md-4 text-muted text-right small"> + $if(date)$$date$$endif$ + </div> + </div> + </footer> +</div> +</body> +</html> |