aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--README.md105
-rw-r--r--img/doaresoajvve.pngbin0 -> 897678 bytes
-rw-r--r--img/gallok.pngbin0 -> 1398484 bytes
-rw-r--r--img/jokkmokk.pngbin0 -> 1446694 bytes
-rw-r--r--template.html107
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
new file mode 100644
index 0000000..92aeef7
--- /dev/null
+++ b/img/doaresoajvve.png
Binary files differ
diff --git a/img/gallok.png b/img/gallok.png
new file mode 100644
index 0000000..21402d1
--- /dev/null
+++ b/img/gallok.png
Binary files differ
diff --git a/img/jokkmokk.png b/img/jokkmokk.png
new file mode 100644
index 0000000..8c43f8c
--- /dev/null
+++ b/img/jokkmokk.png
Binary files differ
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> &copy;
+ $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>