| Commit message (Collapse) | Author | Age | Files |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Thanks to EU Directive 2019/1024 of the European Parliament and of the
Council of 20 June 2019 on open data and the re-use of public sector
information, and the Commission Implementing Regulation (EU) 2023/138 of
21 December 2022, the mineral register is now available under the terms
of the CC0 1.0 Universal licence, see
https://www.sgu.se/produkter-och-tjanster/geologiska-data/malmer-och-mineral--geologiska-data/mineralrattigheter-och-prospektering/
Given we no longer need to parse SVG images from the webmap, we drop
webmap-download-mrr.py and add layers for expired and forbidden permits
(ut_metaller_industrimineral_forfallna, ut_olja_gas_diamant_forfallna,
bearbetningskoncessioner_forfallna, ut_metaller_industrimineral_forbud,
ut_diamant_forbud) as well as markanvisningar_bk_ansokta.
Unfortunately the GeoPackage file doesn't include peat concessions, so
we drop them from config.yml for now. Should they be of interest we can
always restore webmap-download-mrr.py and/or order the register from
Bergsstaten, cf. https://resource.sgu.se/bergsstaten/exporter-ur-mrr-info.pdf .
|
|
|
|
|
|
| |
It's much clearer that way. The destination layer is cleared and
updated in that function, so it makes sense if that's also where
transactions (or SAVEPOINTs) are committed or rollback'ed.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
In a future commit we'll fingerprint layers to detect changes.
Comparing modification times is not enough since some sources (for
instance Naturvårdsverket's SCI_Rikstackande) are updated on the server
even though no objects are being added; the source layer remains
unchanged but the file differs because of OBJECTID changes we are not
interested in.
Rather than using another cache layer/table for fingerprints, we cache
destination layernames rather than triplets (source_path, archive_member,
layername), along with the time at which the import was started rather
than source_path's mtime.
There is indeed no value in having exact source_path's mtime in the
cache. What we need is simply a way to detect whether source paths have
been updated in a subsequent run. Thanks to the shared locks the ctime
of any updated source path will be at least the time when the locks are
released, thereby exceeding the last_updated value.
|
| |
|
|
|
|
| |
Cf. https://gdal.org/en/stable/api/vector_c_api.html#c.OGR_TZFLAG_UTC .
|
|
|
|
| |
files.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
modification time.
That way we can avoid the expensive unpack+import when the source
file(s) have not been updated since the last run. The check can be
bypassed with a new flag `--force`.
We use a sequence for the FID:s (primary key) and a UNIQUE constraint on
triplets (source_path, archive_member, layername) as GDAL doesn't
support multicolumns primary keys.
To avoid races between the stat(2) calls, gdal.OpenEx() and updates via
`webmap-download` runs we place a shared lock on the downloaded files.
One could resort to some tricks to eliminate the race between the first
two, but there is also some value in having consistency during the
entire execution of the script (a single source file can be used by
multiple layers for instance, and it makes sense to use the very same
file for all layers in that case).
We also intersperse dso.FlushCache() calls between _importSource() calls
in order to force the PG driver to call EndCopy() to detect errors and
trigger a rollback when _importSource() fails.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
This avoid duplications when the same source file is used multiple times
(either by the same layer or by multiple layers). This change breaks
webmap-import, but that one will be refactored shortly.
It also breaks webmap-import-mrr.py, which is no longer used since
mineralrattigheter.zip can be downloaded from SGU's site directly.
|
| |
|
|
|
|
| |
And add an optional precision argument
|
|
|
|
| |
It appears it is no longer stripped in Bergsstaten's mineralregister.
|
|
|
|
|
|
|
| |
Apparently there are duplicates for dnr BS 22-28-2000
(bearbetningskoncessioner_beviljade) and BS 23-126-2007,
BS 23-116-2005, BS 23-226-1930, BS 23-149-1960, BS 23-7-2000,
and BS 23-105-2010 (markanvisningar_bk_beviljade).
|
| |
|
|
|
|
|
|
| |
Forgot that PostgreSQL space-pads the latter, and that the former
doesn't in fact yield extra storage costs, cf.
https://www.postgresql.org/docs/13/datatype-character.html
|
| |
|
|
|
|
|
|
| |
As of today SK 117-2024 has not contract date set, so the constraint
fails during import.
https://www.skogsstyrelsen.se/skogens-parlor/NVAvtal/?objektid=4020527
|
|
|
|
|
| |
Among other things this allows CLUSTERing on the GIST indices, cf.
https://postgis.net/docs/manual-3.3/performance_tips.html#database_clustering
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
Unfortunately the dam register is way too noisy Unfortunately it looks
like there is no way to download a pre-curated dam registry with only
noteworthy dams used for production (SvK's dammar_pf.shp comes close but
still misses some), so we manually remove the ones which are more than
2km from a production site or a power station.
|
|
|
|
|
| |
Cf. https://gdal.org/en/latest/drivers/vector/mvt.html . This enables
customizing min/maxzoom and target layer name.
|
|
|
|
| |
Own work.
|
| |
|
|
|
|
|
| |
The webmap ignores elevation, so we might as well flatten geometries to
save space.
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Cf. https://skyddadnatur.naturvardsverket.se/ . We exclude
Nationalstadspark (MB 4 kap 7§) since the only entry is in Stockholm
(Kungliga nationalstadsparken, Ulriksdal-Haga-Brunnsviken-Djurgården)
outside our extent.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Looks like a FID sequence, so not really useful for us…
|
| |
|
|
|
|
| |
From Sametinget via Länsstyrelsen.
|
|
|
|
| |
And pass --no-copy-stat/--no-name and --stdout.
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
This avoids starting multiple imports in parallel. Some layers, such as
Skogsstyrelsen's, are quite large and filtering/importing causes rather
high load.
|
|
|
|
|
|
|
|
|
|
|
| |
In some degenerate cases DelaunayTriangulation() returns a
GEOMETRYCOLLECTION where no triangle is fully contained in the input
geometry, which causes getRandomPoint() to fail as the list of
cumulative weights is an empty list.
We “overshoot” in that case and return the non-curated triangulation.
getRandomPoint(…, max_tries=1024) should be enough to eventually hit a
point in the input geometry.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The former have been deprecated per following note on
https://www.skogsstyrelsen.se/sjalvservice/karttjanster/geodatatjanster/nerladdning-av-geodata/
Påminnelse om vektordata
------------------------
Från och med 1 mars finns vektordata i GeoPackage-format.
Shape-filerna tas bort 16 september. För de flesta datamängder
kommer vi att ta bort de länsvisa lagren och bara ha rikstäckande
lager.
These GeoPackage layers have geometry type POLYGON but appear to contain
MULTIPOLYGONs as well, so fortunately there is no data loss due to
geometry splitting.
|
|
|
|
|
|
|
|
|
|
| |
$JOURNAL_STREAM is set when the WM is started with `systemd-cat
--identifier="sway" sway` or similar. So instead we also check that
$SYSTEMD_EXEC_PID points at the current PID.
This is due to an incomplete logic in
d40c908f9eb768c3f93ae7dc60ee7eb4c358ed4f and
42cfe748e23bad6fc51b14a3e5896a77fdb5c1d5.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Cf. for instance
$ ogrinfo ./LST.vbk_projekteringsomraden.shp -sql "SELECT * FROM \"LST.vbk_projekteringsomraden\" WHERE OMRID = '1452-V-008'"
[…]
Layer name: LST.vbk_projekteringsomraden
Geometry: Polygon
Feature Count: 1
Extent: (-907106.000000, 727.000000) - (914131.738200, 7573766.311200)
Layer SRS WKT:
PROJCRS["SWEREF99 TM",
[…]
OGRFeature(LST.vbk_projekteringsomraden):2043
OMRID (String) = 1452-V-008
PROJNAMN (String) = Grimsås Äspås
ANTALVERK (Integer64) = 0
AntalejXY (Integer64) = (null)
CALPROD (Real) = 0.000000000000000
PBYGGSTART (String) = (null)
PDRIFT (String) = (null)
Andringsan (String) = (null)
UnderByggn (String) = (null)
ORGNAMN (String) = Kraftö AB
ORGNR (String) = 556708-7456
EJAKTUELL (String) = Yes
KOMNAMN (String) = Tranemo
LANSNAMN (String) = Västra Götalands l
EL_NAMN (String) = (null)
Raderat (String) = No
ArendeStat (String) = (null)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Only the land-based ones for now. Source:
https://www.energimyndigheten.se/energisystem-och-analys/elproduktion/vindkraft/vindbrukskollen/
Layers:
- https://ext-geodatakatalog.lansstyrelsen.se/GeodataKatalogen/srv/api/records/GetMetaDataById?id=ed5814b2-08bf-493a-a164-7819e1b590d6
LST Vindbrukskollen landbaserade vindkraftverk
- https://ext-geodatakatalog.lansstyrelsen.se/GeodataKatalogen/srv/api/records/GetMetaDataById?id=c816bd1e-bc6c-487f-a962-770f05f677b6
LST Vindbrukskollen landbaserade projekteringsområden
- https://ext-geodatakatalog.lansstyrelsen.se/GeodataKatalogen/srv/api/records/GetMetaDataById?id=c290bc31-1af8-497e-a9a5-87fcec55d0ce
LST Vindbrukskollen havsbaserad vindkraft
Webmaps:
- https://vbk.lansstyrelsen.se/
- https://ext-geodatakatalog.lansstyrelsen.se/GeodataKatalogen/srv/swe/catalog.search#/map
|
|
|
|
| |
The PostgreSQL driver doesn't support AlternativeName, for instance.
|