From 7c3247768cb2e2256080bcb84e0e5e1050610f0b Mon Sep 17 00:00:00 2001 From: Saidy Barry Date: Wed, 2 Sep 2026 17:36:44 +0200 Subject: [PATCH] Repair the Saarland, Germany converter (de_sl), which could no longer read its source at all --- CHANGELOG.md | 6 +- fiboa_cli/datasets/de_sl.py | 73 +- fiboa_cli/datasets/de_sl_block.py | 14 +- tests/data-files/convert/de_sl/de_sl.gml | 829 +++++++++++++++++++++++ tests/test_convert.py | 2 + 5 files changed, 890 insertions(+), 34 deletions(-) create mode 100644 tests/data-files/convert/de_sl/de_sl.gml diff --git a/CHANGELOG.md b/CHANGELOG.md index 4dc3e4f3..5c4e6a9c 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -21,7 +21,11 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - Converter for Bavaria, Germany LPIS field blocks (de_by_block) - Converter for Hesse, Germany LPIS reference parcels - Converter for Saarland, Germany LPIS field blocks (de_sl_block) -- Fix parcel sizes written in scientific notation being read 10,000x too large (de_sl parser) +- Fix parcel sizes written in scientific notation being read 10,000x too large (de_sl_block parser) +- Repair the Saarland, Germany converter (de_sl), which could no longer read its source at all. + It now pages through the whole dataset, where the previous six hardcoded bounding boxes reached + only 20,300 of 54,038 parcels, so earlier output was incomplete. `metrics:area` is derived from + the geometry, because the service stopped publishing the declared size. - Update vecorel-cli to v0.2.16: - Converter output is sorted by Hilbert distance - Commands exit with a non-zero exit code when they report a failure diff --git a/fiboa_cli/datasets/de_sl.py b/fiboa_cli/datasets/de_sl.py index 0a379e7e..d0548305 100644 --- a/fiboa_cli/datasets/de_sl.py +++ b/fiboa_cli/datasets/de_sl.py @@ -1,40 +1,28 @@ import re +from urllib.parse import urlencode +import requests from vecorel_cli.conversion.admin import AdminConverterMixin from ..conversion.fiboa_converter import FiboaBaseConverter - -def parse_flik(x): - match = re.search(r"flik:\s*([A-Z]{6}\d{10})", x, re.I) - return match.group(1) if match else None - - -def parse_size(x): - # Small parcels are written in scientific notation, e.g. "Size in ha: 1.0999999999999999E-4". - # Without the exponent the value is read as 1.1 ha instead of 1.1 m², a factor of 10,000. - match = re.search(r"Size in ha: (\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)", x, re.I) - return float(match.group(1)) if match else None - - -url = "https://geoportal.saarland.de/gdi-sl/inspirewfs_Existierende_Bodennutzung_Antragsschlaege?SERVICE=WFS&REQUEST=GetFeature&VERSION=2.0.0&typeNames=elu:ExistingLandUseObject&outputFormat=application/gml%2Bxml;%20version=3.2&EPSG=4258&BBOX={bbox}" -bboxes = [ - [49.1, 6.5423790007724, 49.332379000772, 6.7747580015449], - [49.1, 6.7747580015449, 49.332379000772, 7.0071370023173], - [49.1, 7.0071370023173, 49.216189500386, 7.2395160030898], - [49.216189500386, 7.0071370023173, 49.332379000772, 7.2395160030898], - [49.1, 7.2395160030898, 49.332379000772, 7.4718950038622], - [49.332379000772, 6.31, 49.564758001545, 6.5423790007724], - # Add more bboxes if needed -] +BASE_URL = ( + "https://geoportal.saarland.de/gdi-sl/inspirewfs_Existierende_Bodennutzung_Antragsschlaege" +) +PARAMS = { + "service": "WFS", + "version": "2.0.0", + "request": "GetFeature", + "typeNames": "elu:ExistingLandUseObject", + # The media type contains a ";", which has to be percent-encoded. Passed through raw, the + # server reads the parameter as "application/gml+xml" and rejects it. + "outputFormat": "application/gml+xml; version=3.2", +} +# The WFS accepts larger pages, but 2500 keeps each response around 8 MB. +PAGE_SIZE = 2500 class Converter(AdminConverterMixin, FiboaBaseConverter): - sources = { - url.format(bbox=",".join(map(str, bbox))): f"{i}.gml" - for i, bbox in enumerate(bboxes, start=1) - } - id = "de_sl" admin_subdivision_code = "SL" short_name = "Germany, Saarland" @@ -44,16 +32,37 @@ class Converter(AdminConverterMixin, FiboaBaseConverter): attribution = "©GDI-SL 2024" license = "cc-by-4.0" extensions = {"https://fiboa.org/flik-extension/v0.2.0/schema.yaml"} + + # The service publishes no area attribute, so it is derived from the geometry. The data is in + # degrees, so post_migrate reprojects to an equal-area CRS and the result is already in m². + area_is_in_ha = False + area_calculate_missing = True + columns = { "geometry": "geometry", "identifier": "id", - "flik": "flik", - "area": "metrics:area", + "flik": "flik", # derived in migrate(); NOT the id, one field block can hold several parcels + "area": "metrics:area", # not in the source; created by area_calculate_missing "name": "name", } missing_schemas = {"properties": {"name": {"type": "string"}}} + def get_urls(self): + # numberReturned is always reported as 0 by this server, so the page count has to come + # from a hits request rather than from the responses themselves. + hits = requests.get(BASE_URL, params={**PARAMS, "resultType": "hits"}) + hits.raise_for_status() + total = int(re.search(r'numberMatched="(\d+)"', hits.text).group(1)) + + query = urlencode({**PARAMS, "count": PAGE_SIZE}) + return { + f"{BASE_URL}?{query}&startIndex={start}": f"de_sl_{start}.gml" + for start in range(0, total, PAGE_SIZE) + } + def migrate(self, gdf): - gdf["flik"] = gdf["description"].apply(parse_flik) - gdf["area"] = gdf["description"].apply(parse_size) + # The FLIK is the first 16 characters of the last underscore-separated segment of the + # identifier, e.g. …_DESLLI00002529002224568 -> DESLLI0000252900. The remaining seven + # digits number the application parcel within the field block. + gdf["flik"] = gdf["identifier"].str.rsplit("_", n=1).str[-1].str[:16] return super().migrate(gdf) diff --git a/fiboa_cli/datasets/de_sl_block.py b/fiboa_cli/datasets/de_sl_block.py index ae3c186c..bcf47dea 100644 --- a/fiboa_cli/datasets/de_sl_block.py +++ b/fiboa_cli/datasets/de_sl_block.py @@ -7,7 +7,19 @@ from ..conversion.convert_gml import gml_assure_columns from ..conversion.fiboa_converter import FiboaBaseConverter from .commons.de_iacs import DEIACSMixin -from .de_sl import parse_flik, parse_size + + +def parse_flik(x): + match = re.search(r"flik:\s*([A-Z]{6}\d{10})", x, re.I) + return match.group(1) if match else None + + +def parse_size(x): + # Small parcels are written in scientific notation, e.g. "Size in ha: 1.0999999999999999E-4". + # Without the exponent the value is read as 1.1 ha instead of 1.1 m², a factor of 10,000. + match = re.search(r"Size in ha: (\d+(?:\.\d+)?(?:[eE][+-]?\d+)?)", x, re.I) + return float(match.group(1)) if match else None + BASE_URL = "https://geoportal.saarland.de/gdi-sl/inspirewfs_Bodenbedeckung_LPIS" PARAMS = { diff --git a/tests/data-files/convert/de_sl/de_sl.gml b/tests/data-files/convert/de_sl/de_sl.gml new file mode 100644 index 00000000..7b8a8256 --- /dev/null +++ b/tests/data-files/convert/de_sl/de_sl.gml @@ -0,0 +1,829 @@ + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_ed03310df04b36ccf50be4a2ab0c73cf24b6f7576de3c8c6afac16dd61dd7880_DESLLI00002529002224568 + + + ExistingLandUseObject_ed03310df04b36ccf50be4a2ab0c73cf24b6f7576de3c8c6afac16dd61dd7880_DESLLI00002529002224568 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.144180 7.269044 49.144015 7.269072 49.144014 7.269073 49.143452 7.269177 49.143521 7.269393 49.143524 7.269393 49.144191 7.269317 49.144195 7.269317 49.144180 7.269044 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_2e6d35686afb8a4ad32794cc3e2c30f8389ca5cdb4ff5b8abf34864c47578c40_DESLLI03001201132224569 + + + ExistingLandUseObject_2e6d35686afb8a4ad32794cc3e2c30f8389ca5cdb4ff5b8abf34864c47578c40_DESLLI03001201132224569 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.152018 7.270146 49.151978 7.270231 49.151943 7.270293 49.151852 7.270436 49.151774 7.270560 49.151620 7.270814 49.151726 7.271057 49.151728 7.271060 49.151890 7.270841 49.152152 7.270384 49.152167 7.270339 49.152018 7.270146 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_bc64df3d6a8ebde042ecc85486963d14b20b0d6f35c18361e663a2d2cb1495b2_DESLLI03000167632224570 + + + ExistingLandUseObject_bc64df3d6a8ebde042ecc85486963d14b20b0d6f35c18361e663a2d2cb1495b2_DESLLI03000167632224570 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.149647 7.271732 49.148495 7.271727 49.148517 7.271751 49.148522 7.271756 49.148531 7.271766 49.148548 7.271773 49.148547 7.271841 49.148571 7.271876 49.148616 7.271940 49.148672 7.271987 49.148690 7.271978 49.148699 7.271972 49.148737 7.271936 49.149453 7.271926 49.149618 7.271930 49.149709 7.271921 49.149704 7.271740 49.149647 7.271732 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_6df932aaac1d449c553ef37cc37f9ae6ba28318409d25dcaf26874fc949bee66_DESLLI09000167812224571 + + + ExistingLandUseObject_6df932aaac1d449c553ef37cc37f9ae6ba28318409d25dcaf26874fc949bee66_DESLLI09000167812224571 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.138110 7.256182 49.137993 7.256488 49.138027 7.256527 49.138027 7.256527 49.138236 7.256861 49.138302 7.256981 49.138366 7.257098 49.138687 7.257788 49.138687 7.257788 49.138855 7.258220 49.138917 7.258367 49.138942 7.258426 49.138942 7.258426 49.139039 7.258352 49.138713 7.257587 49.138314 7.256649 49.138110 7.256182 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_3ca2c578577c6e31cd5c6d5d8baaab0b050d086559a80918053ecd96a4299799_DESLLI02000167882224572 + + + ExistingLandUseObject_3ca2c578577c6e31cd5c6d5d8baaab0b050d086559a80918053ecd96a4299799_DESLLI02000167882224572 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.132971 7.276744 49.132871 7.276751 49.132808 7.276775 49.132757 7.276801 49.132748 7.276810 49.132693 7.276863 49.132690 7.276866 49.132683 7.276880 49.132658 7.276905 49.132650 7.276909 49.132617 7.276943 49.132581 7.276968 49.132496 7.277012 49.132437 7.277000 49.132411 7.276988 49.132391 7.276990 49.132349 7.276989 49.132111 7.277068 49.131928 7.277114 49.131826 7.277137 49.131713 7.277146 49.131701 7.277162 49.131692 7.277184 49.131691 7.277223 49.132299 7.277217 49.133195 7.277157 49.133191 7.277135 49.133191 7.277100 49.133154 7.276804 49.133157 7.276804 49.133156 7.276804 49.133012 7.276749 49.132971 7.276744 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_19882513fed532c22f5f4d4224ae1d21e919216b4effe31b78a8c2631ccbcc0b_DESLLI10000167812224573 + + + ExistingLandUseObject_19882513fed532c22f5f4d4224ae1d21e919216b4effe31b78a8c2631ccbcc0b_DESLLI10000167812224573 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.137374 7.255551 49.137253 7.255580 49.137214 7.255593 49.137183 7.255611 49.137158 7.255650 49.137151 7.255694 49.137155 7.255731 49.137192 7.255762 49.137225 7.255782 49.137242 7.255792 49.137244 7.255794 49.137408 7.255910 49.137496 7.255992 49.137496 7.255992 49.137676 7.256162 49.137812 7.256284 49.137812 7.256284 49.137812 7.256284 49.137993 7.256488 49.138110 7.256182 49.137993 7.255916 49.137937 7.255758 49.137836 7.255721 49.137680 7.255663 49.137476 7.255588 49.137374 7.255551 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_2cc0143491c2b1a314a3b246d97738ed42ed178d8df1624c390d6e0d38c1d035_DESLLI05002319352224574 + + + ExistingLandUseObject_2cc0143491c2b1a314a3b246d97738ed42ed178d8df1624c390d6e0d38c1d035_DESLLI05002319352224574 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.142282 7.261850 49.142292 7.262725 49.142295 7.263039 49.142609 7.264009 49.142593 7.263412 49.142593 7.263412 49.142563 7.263332 49.142521 7.263255 49.142509 7.263211 49.142493 7.263158 49.142488 7.263141 49.142488 7.263141 49.142482 7.262834 49.142485 7.262758 49.142489 7.262674 49.142491 7.262588 49.142494 7.262587 49.142496 7.262586 49.142511 7.262578 49.142521 7.262574 49.142554 7.262559 49.142578 7.262535 49.142578 7.262199 49.142579 7.261866 49.142282 7.261850 + + + + + + + + + + + + + + + + + Getreide + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_56d320675ff859e7050b291ed082329c58276a0788ce05da1b3bc5d3aafce4b8_DESLLI08000209382225141 + + + ExistingLandUseObject_56d320675ff859e7050b291ed082329c58276a0788ce05da1b3bc5d3aafce4b8_DESLLI08000209382225141 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.217916 7.171602 49.217051 7.172179 49.217101 7.172389 49.218003 7.171778 49.217916 7.171602 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_9e00d62bb06ecca8e383f2a0fbf56b614fa5eb8a74897fbe9bfc31269ba3992d_DESLLI08001220582224575 + + + ExistingLandUseObject_9e00d62bb06ecca8e383f2a0fbf56b614fa5eb8a74897fbe9bfc31269ba3992d_DESLLI08001220582224575 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.124452 7.271638 49.124180 7.271660 49.124080 7.271672 49.124090 7.271687 49.124296 7.271967 49.124277 7.272597 49.124277 7.272827 49.124259 7.273130 49.124201 7.273552 49.124174 7.273709 49.124148 7.273870 49.124116 7.273954 49.124104 7.273989 49.124097 7.274005 49.124267 7.274078 49.124266 7.274082 49.124357 7.274131 49.124357 7.274130 49.124357 7.274130 49.124357 7.274130 49.124359 7.274083 49.124452 7.271638 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_71dbd641fc4e0de99d39dce5a3354724aa3df28dabe3b51330a3f30858948bf6_DESLLI07000167722224576 + + + ExistingLandUseObject_71dbd641fc4e0de99d39dce5a3354724aa3df28dabe3b51330a3f30858948bf6_DESLLI07000167722224576 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.126969 7.265844 49.126918 7.265849 49.126930 7.265945 49.126998 7.266186 49.127042 7.266217 49.127045 7.266218 49.127175 7.266230 49.127204 7.266235 49.127204 7.266235 49.127228 7.266242 49.127259 7.266237 49.127319 7.266257 49.127323 7.266265 49.128221 7.266320 49.128163 7.266090 49.128117 7.265969 49.127877 7.265941 49.127830 7.265935 49.126969 7.265844 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_f9fbca3069b0d87145d545b5b91556ff6f8da17827d42fdb3878e41bb0124d6e_DESLLI02001220562224577 + + + ExistingLandUseObject_f9fbca3069b0d87145d545b5b91556ff6f8da17827d42fdb3878e41bb0124d6e_DESLLI02001220562224577 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.148239 7.271726 49.147603 7.271723 49.147357 7.271732 49.147390 7.271975 49.147413 7.272126 49.147471 7.272161 49.147582 7.272157 49.147748 7.272147 49.147907 7.272147 49.148004 7.272150 49.148131 7.272138 49.148191 7.272140 49.148344 7.272137 49.148671 7.272131 49.148552 7.272026 49.148239 7.271726 + + + + + + + + + + + + + + + + + Aus der Produktion genommen + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_ac2d4f33ee3df0678ddf3f7cabc84f408cf431eb60ca90fcbd9f224de16fbd4a_DESLLI08000167502224578 + + + ExistingLandUseObject_ac2d4f33ee3df0678ddf3f7cabc84f408cf431eb60ca90fcbd9f224de16fbd4a_DESLLI08000167502224578 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.130589 7.261335 49.130403 7.261403 49.130403 7.261403 49.130311 7.261441 49.130321 7.261754 49.130334 7.262081 49.130335 7.262140 49.130335 7.262148 49.130345 7.262408 49.130347 7.262716 49.130350 7.262930 49.130352 7.263037 49.130354 7.263037 49.130591 7.263105 49.130647 7.263117 49.130591 7.261369 49.130589 7.261335 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_1accc737a8e0f6fc50ddd0150a78e70b0fd3e3f6e3a05c809d3ff800c3e6f40b_DESLLI01000173272224579 + + + ExistingLandUseObject_1accc737a8e0f6fc50ddd0150a78e70b0fd3e3f6e3a05c809d3ff800c3e6f40b_DESLLI01000173272224579 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.146385 7.259101 49.146317 7.259134 49.146328 7.259164 49.146338 7.259257 49.146353 7.259345 49.146356 7.259358 49.146442 7.259788 49.146287 7.259933 49.146284 7.259940 49.146273 7.259955 49.146263 7.260034 49.146590 7.261188 49.146614 7.261153 49.146655 7.261095 49.146746 7.260975 49.146805 7.260906 49.146832 7.260875 49.146886 7.260819 49.146601 7.259947 49.146526 7.259683 49.146385 7.259101 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_9b3ba281b215c9d0af89531b84b98aef708a7568bcc4c90d2548f06ecea4d962_DESLLI09001220582224580 + + + ExistingLandUseObject_9b3ba281b215c9d0af89531b84b98aef708a7568bcc4c90d2548f06ecea4d962_DESLLI09001220582224580 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.124097 7.274005 49.124038 7.274149 49.123936 7.274428 49.123848 7.274630 49.123840 7.274649 49.123836 7.274658 49.123783 7.274778 49.123716 7.274914 49.123707 7.274935 49.123689 7.275009 49.123683 7.275032 49.123670 7.275123 49.123635 7.275212 49.123608 7.275282 49.123525 7.275578 49.123509 7.275617 49.123472 7.275734 49.123406 7.275952 49.123403 7.275964 49.123402 7.275968 49.123399 7.275977 49.123340 7.276124 49.123338 7.276131 49.123327 7.276156 49.123293 7.276240 49.123274 7.276282 49.123237 7.276368 49.123160 7.276522 49.123076 7.276704 49.123007 7.276864 49.122979 7.276945 49.122978 7.276959 49.122983 7.276948 49.122971 7.277062 49.122973 7.277115 49.122982 7.277175 49.122988 7.277269 49.122989 7.277346 49.122992 7.277374 49.123004 7.277318 49.123028 7.277244 49.123290 7.276567 49.123632 7.275685 49.124069 7.274574 49.124209 7.274205 49.124266 7.274082 49.124267 7.274078 49.124097 7.274005 + + + + + + + + + + + + + + + + + Aus der Produktion genommen + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_b3eede0c91d0ee7515b89305ee79aa6447a16557c0bfbb0c20bd33dc84540d2e_DESLLI09000167412224581 + + + ExistingLandUseObject_b3eede0c91d0ee7515b89305ee79aa6447a16557c0bfbb0c20bd33dc84540d2e_DESLLI09000167412224581 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.146106 7.279425 49.146106 7.279425 49.146073 7.279425 49.145934 7.279424 49.145756 7.281641 49.146004 7.281660 49.146181 7.279427 49.146132 7.279426 49.146132 7.279426 49.146106 7.279425 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_e4df0dfda24c29ad8dae827e8d8c92c047e837556835c2e5a5f574c4ce4d5870_DESLLI03000167652224582 + + + ExistingLandUseObject_e4df0dfda24c29ad8dae827e8d8c92c047e837556835c2e5a5f574c4ce4d5870_DESLLI03000167652224582 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.143477 7.261984 49.143400 7.261987 49.143384 7.261988 49.143297 7.262003 49.143353 7.265040 49.143395 7.265045 49.143435 7.265060 49.143492 7.265104 49.143548 7.265142 49.143545 7.265034 49.143534 7.264765 49.143538 7.264764 49.143528 7.264406 49.143505 7.263444 49.143486 7.262465 49.143479 7.262088 49.143477 7.261984 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_317c3886d3bc86d7ac96a6139e35f30c41ec973c11fe12937b7b79c3ee0d0c06_DESLLI04000167732224583 + + + ExistingLandUseObject_317c3886d3bc86d7ac96a6139e35f30c41ec973c11fe12937b7b79c3ee0d0c06_DESLLI04000167732224583 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.140504 7.272509 49.140300 7.272737 49.140154 7.272906 49.140221 7.273175 49.140222 7.273174 49.140430 7.273997 49.140429 7.274002 49.140430 7.274009 49.140551 7.274007 49.140620 7.273982 49.140763 7.273918 49.140851 7.273873 49.140875 7.273837 49.140855 7.273746 49.140834 7.273671 49.140838 7.273669 49.140826 7.273615 49.140669 7.273130 49.140504 7.272509 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_5eb3f2aa28fa41479087c636f79617b753d943b15d5773b9f9f9239f96c14ea7_DESLLI02000167682224584 + + + ExistingLandUseObject_5eb3f2aa28fa41479087c636f79617b753d943b15d5773b9f9f9239f96c14ea7_DESLLI02000167682224584 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.150039 7.259127 49.150024 7.259137 49.150022 7.259138 49.150013 7.259163 49.150014 7.259196 49.150022 7.259218 49.149783 7.259365 49.149715 7.259406 49.150166 7.260650 49.150282 7.261016 49.150381 7.261323 49.150412 7.261295 49.150688 7.261052 49.150688 7.261052 49.150661 7.260981 49.150661 7.260968 49.150517 7.260523 49.150448 7.260285 49.150178 7.259480 49.150060 7.259164 49.150039 7.259127 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_3600fc46756b74973d2fb71f0736842375af5147e4b38d34a14199fde1e31a8f_DESLLI07000167692224585 + + + ExistingLandUseObject_3600fc46756b74973d2fb71f0736842375af5147e4b38d34a14199fde1e31a8f_DESLLI07000167692224585 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.150258 7.255525 49.150243 7.255551 49.150243 7.255551 49.150243 7.255551 49.149903 7.256097 49.149286 7.257006 49.149358 7.257153 49.149438 7.257332 49.149522 7.257551 49.149779 7.257147 49.150094 7.256653 49.150345 7.256257 49.150507 7.255994 49.150507 7.255994 49.150514 7.255973 49.150534 7.255933 49.150534 7.255932 49.150534 7.255932 49.150533 7.255931 49.150520 7.255906 49.150500 7.255866 49.150500 7.255866 49.150373 7.255688 49.150370 7.255684 49.150338 7.255640 49.150337 7.255638 49.150332 7.255631 49.150289 7.255571 49.150287 7.255568 49.150278 7.255554 49.150272 7.255546 49.150258 7.255525 + + + + + + + + + + + + + + + + + Aus der Produktion genommen + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_75e2fa50ccc03dad13dd0bec253b29eafb7ade20951abf1c8788071eeb8121d4_DESLLI04000167492224586 + + + ExistingLandUseObject_75e2fa50ccc03dad13dd0bec253b29eafb7ade20951abf1c8788071eeb8121d4_DESLLI04000167492224586 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.145030 7.279915 49.144827 7.279951 49.144723 7.279969 49.144605 7.279989 49.144572 7.279994 49.144433 7.280015 49.144241 7.280041 49.144040 7.280067 49.143825 7.280095 49.143530 7.280141 49.143058 7.280224 49.143058 7.280238 49.143066 7.280436 49.143072 7.280464 49.143392 7.280429 49.143623 7.280393 49.143623 7.280393 49.143623 7.280403 49.143635 7.280402 49.143646 7.280615 49.143651 7.280773 49.143837 7.280745 49.143837 7.280745 49.143837 7.280746 49.144077 7.280707 49.144148 7.280688 49.144477 7.280630 49.144629 7.280601 49.144998 7.280528 49.145005 7.280393 49.145006 7.280376 49.145006 7.280376 49.145008 7.280337 49.145030 7.279915 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_826eee7efcbb67ce20bfb69024695bae17c9305309684f02627d467075a36067_DESLLI03000167612224587 + + + ExistingLandUseObject_826eee7efcbb67ce20bfb69024695bae17c9305309684f02627d467075a36067_DESLLI03000167612224587 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.142616 7.261831 49.142611 7.262139 49.142611 7.262300 49.142611 7.262460 49.142620 7.262797 49.142630 7.263143 49.142633 7.263512 49.142633 7.263584 49.142636 7.263788 49.142640 7.263984 49.142640 7.263984 49.142647 7.264039 49.142656 7.264061 49.142731 7.264197 49.142950 7.264528 49.142952 7.264532 49.142952 7.264532 49.142996 7.264589 49.143073 7.264712 49.143113 7.264782 49.143077 7.262952 49.143058 7.261985 49.143033 7.261973 49.142976 7.261936 49.142915 7.261909 49.142912 7.261908 49.142912 7.261908 49.142912 7.261909 49.142682 7.261848 49.142616 7.261831 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_b7f5aac12d7ca0eb91a98071f5e05d0e6c604e12b8801de3f9b6b1c238f77e5e_DESLLI02000154182224656 + + + ExistingLandUseObject_b7f5aac12d7ca0eb91a98071f5e05d0e6c604e12b8801de3f9b6b1c238f77e5e_DESLLI02000154182224656 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.160666 7.222204 49.160417 7.222645 49.160422 7.222668 49.160424 7.222664 49.160467 7.222733 49.161234 7.223968 49.161243 7.223895 49.161243 7.223894 49.161274 7.223885 49.161302 7.223876 49.161307 7.223875 49.161325 7.223870 49.161372 7.223871 49.161547 7.223615 49.160666 7.222204 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_a0c54a71942f4f81f69c33c58cbb03521edfa144442533a7a629b60f79852bb3_DESLLI05001220572224588 + + + ExistingLandUseObject_a0c54a71942f4f81f69c33c58cbb03521edfa144442533a7a629b60f79852bb3_DESLLI05001220572224588 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.127516 7.277519 49.127488 7.277608 49.127422 7.277851 49.127351 7.278109 49.127207 7.278517 49.127157 7.278644 49.127113 7.278755 49.127083 7.278872 49.127063 7.279056 49.127045 7.279133 49.126967 7.279337 49.126954 7.279340 49.126912 7.279540 49.126925 7.279545 49.126898 7.279803 49.126905 7.279911 49.126916 7.279956 49.126922 7.280009 49.126926 7.280080 49.126939 7.280146 49.126954 7.280245 49.127007 7.280419 49.127034 7.280522 49.127091 7.280646 49.127198 7.280862 49.127255 7.280931 49.127322 7.281036 49.127435 7.281143 49.127506 7.281193 49.127599 7.281267 49.127606 7.281276 49.127672 7.281342 49.127805 7.281425 49.127872 7.281460 49.127958 7.281487 49.128100 7.281519 49.128261 7.281549 49.128404 7.281555 49.128544 7.281549 49.128564 7.281441 49.128561 7.281394 49.128429 7.281372 49.128240 7.281319 49.128064 7.281252 49.127808 7.281135 49.127510 7.280957 49.127226 7.280693 49.127458 7.278208 49.127516 7.277519 + + + + + + + + + + + + + + + + + Dauergrünland + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_0136eb0f68aec6d5ddcc7869ff4126bf2761d63fc285beabc46ab2dafc2da7b5_DESLLI03000167822224589 + + + ExistingLandUseObject_0136eb0f68aec6d5ddcc7869ff4126bf2761d63fc285beabc46ab2dafc2da7b5_DESLLI03000167822224589 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.129691 7.267619 49.129477 7.267698 49.129278 7.267758 49.129233 7.267774 49.129172 7.267810 49.129158 7.267847 49.129154 7.267871 49.129153 7.267878 49.129173 7.268029 49.129198 7.268193 49.129255 7.268569 49.129330 7.269023 49.129368 7.269288 49.129396 7.269499 49.129406 7.269657 49.129413 7.269741 49.129420 7.269742 49.129420 7.269739 49.129568 7.269748 49.129739 7.269760 49.129827 7.269765 49.130015 7.269783 49.129806 7.268405 49.129691 7.267619 + + + + + + + + + + + + + + + + + Zierpflanzen + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ExistingLandUseObject_4ef9b7eb973533a1116d4dbbb702508615bac6a71a4c584f203022568316cc77_DESLLI02000167582224590 + + + ExistingLandUseObject_4ef9b7eb973533a1116d4dbbb702508615bac6a71a4c584f203022568316cc77_DESLLI02000167582224590 + https://registry.gdi-de.org/id/de.sl.inspire.elu.invekos/ + + + + + + + + + + + 49.133195 7.277157 49.132299 7.277217 49.131691 7.277223 49.131687 7.277267 49.131689 7.277293 49.131702 7.277511 49.131725 7.277851 49.131734 7.278014 49.132151 7.278016 49.132240 7.278016 49.132422 7.278007 49.132654 7.277993 49.132821 7.277980 49.133021 7.277960 49.133320 7.277916 49.133256 7.277498 49.133247 7.277444 49.133195 7.277157 + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/tests/test_convert.py b/tests/test_convert.py index d243e677..7f279d8b 100644 --- a/tests/test_convert.py +++ b/tests/test_convert.py @@ -56,6 +56,7 @@ "lt_kzs", "de_by_block", "de_sl_block", + "de_sl", "de_he", ] test_path = "tests/data-files/convert" @@ -83,6 +84,7 @@ def _input_files(converter, *names): "lt_kzs": _input_files("lt_kzs", "lt_kzs.json"), "de_by_block": _input_files("de_by_block", "de_by_block.gml"), "de_sl_block": _input_files("de_sl_block", "de_sl_block.gml"), + "de_sl": _input_files("de_sl", "de_sl.gml"), }