diff options
-rw-r--r-- | config.yml | 848 | ||||
-rw-r--r-- | schema.sql | 1037 | ||||
-rw-r--r-- | webmap-download-mrr.py | 673 |
3 files changed, 1340 insertions, 1218 deletions
@@ -3102,477 +3102,765 @@ layers: where: | "Raderat" IS FALSE - # The list of layers available on the WMS server can be found at - # https://maps3.sgu.se/geoserver/wms?SERVICE=WMS&VERSION=1.11&REQUEST=GetCapabilities - 'mrr:bearbetningskoncessioner_applied': - description: Bearbetningskoncessioner, ansökta (SGU) + 'mrr:ut_metaller_industrimineral_ansokta': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Metaller och industrimineral, ansökta (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String unique: true nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Namn på ansökt undersökningsområde + - name: diarynr + type: String + unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: appl_date + type: Date + nullable: false + comment: Datum när ansökan inkom till Bergsstaten + - name: mineral type: String nullable: false width: 254 - comment: Koncessionsmineral - - name: Applicant + comment: Koncessionsmineral som ska eftersökas + - name: owners type: String nullable: false width: 254 - comment: Sökandens namn - - name: ApplicationDate + comment: Sökanden av undersökningstillståndet + - name: export_date type: Date nullable: false - - name: DiaryNr + comment: Datum då uttag från mineralrättsregistret gjordes + source: + path: mrr/mineralrattigheter.zip + unar: + format: zip + import: + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_metaller_industrimineral_ansokta + publish: appl_met + + 'mrr:ut_diamant_ansokta': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Diamant, ansökta (SGU) + create: + geometry-type: MULTIPOLYGON + fields: + - name: name + type: String + unique: true + nullable: false + width: 254 + comment: Namn på ansökt undersökningsområde + - name: diarynr type: String unique: true nullable: false width: 16 - - name: LastUpdated + comment: Ärendenummer i diariet + - name: appl_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum när ansökan inkom till Bergsstaten + - name: mineral + type: String + nullable: false + width: 254 + comment: Koncessionsmineral som ska eftersökas + - name: owners + type: String + nullable: false + width: 254 + comment: Sökanden av undersökningstillståndet + - name: export_date + type: Date + nullable: false + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.BEARBETNINGSKONCESSIONER_APPLIED_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Applicant': Applicant - 'Application date': ApplicationDate - 'Diary nr': DiaryNr - 'Last updated': LastUpdated - value-map: - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appl_ec + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_diamant_ansokta + publish: appl_ogd - 'mrr:bearbetningskoncessioner_approved': - description: Bearbetningskoncessioner, beviljade (SGU) + 'mrr:bearbetningskoncessioner_ansokta': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Bearbetningskoncessioner, ansökta (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String unique: true nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Namn på ansökt bearbetningskoncession + - name: diarynr + type: String + unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: appl_date + type: Date + nullable: false + comment: Datum när ansökan inkom till Bergsstaten + - name: mineral type: String nullable: false width: 254 - comment: Koncessionsmineral - - name: Owner + comment: Ansökta koncessionsmineraler + - name: owners type: String nullable: false width: 254 - comment: Ägares namn - - name: ValidFrom + comment: Sökanden av bearbetningskoncessionen + - name: export_date type: Date nullable: false - comment: När tillståndets giltighet börjar - - name: ValidTo - type: Date + comment: Datum då uttag från mineralrättsregistret gjordes + source: + path: mrr/mineralrattigheter.zip + unar: + format: zip + import: + path: mineralrattigheter.gpkg + format: GPKG + layername: bearbetningskoncessioner_ansokta + publish: appl_ec + + 'mrr:markanvisningar_bk_ansokta': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Markanvisningar till bearbetningskoncessioner, ansökta (SGU) + create: + geometry-type: MULTIPOLYGON + fields: + - name: name + type: String + unique: true nullable: false - comment: När tillståndets giltighet slutar - - name: DiaryNr + width: 254 + comment: Namn på ansökt markanvisning + - name: diarynr type: String - # XXX how come there is no UNIQUE constraint here? - #unique: true + unique: true + nullable: false width: 16 - - name: LastUpdated + comment: Ärendenummer i diariet + - name: conc_name + type: String + nullable: false + width: 254 + comment: Bearbetningskoncession(er) som markanvisningen hör till + - name: appl_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum när ansökan inkom till Bergsstaten + - name: export_date + type: Date + nullable: false + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.BEARBETNINGSKONCESSIONER_APPROVED_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Owner': Owner - 'Valid from': ValidFrom - 'Valid to': ValidTo - 'Diary nr': DiaryNr - 'Last updated': LastUpdated - value-map: - 'Diary nr': - - replace: '' - with: null - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appr_ec + path: mineralrattigheter.gpkg + format: GPKG + layername: markanvisningar_bk_ansokta + publish: appl_dl - 'mrr:markanvisningar': - description: Markanvisning till koncession (SGU) + 'mrr:ut_metaller_industrimineral_beviljade': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Metaller och industrimineral, beviljade (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String + unique: true nullable: false width: 254 - comment: Benämning på området - - name: DecisionDate + comment: Namn på beviljat undersökningstillstånd + - name: licenceid + type: String + unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr + type: String + unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: appl_date + type: Date + nullable: false + comment: Datum när ansökan inkom till Bergsstaten + - name: dec_date + type: Date + nullable: false + comment: Datum när undersökningstillståndet beviljades + - name: validfrom + type: Date + nullable: false + comment: Datum från och med när undersökningstillståndet började gälla + - name: validto type: Date nullable: false - comment: Beslutsdatum - - name: DiaryNr + comment: Sista dagen undersökningstillståndet gäller + - name: mineral type: String - # XXX how come there is no UNIQUE constraint here? - #unique: true - width: 16 - - name: LastUpdated + nullable: false + width: 254 + comment: Koncessionsmineral som eftersöks + - name: owners + type: String + nullable: false + width: 254 + comment: Innehavare av undersökningstillståndet + - name: export_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.MARKANVISNINGAR_VY' - field-map: - 'Name': Name - 'Decision date': DecisionDate - 'Diary nr': DiaryNr - 'Last updated': LastUpdated + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_metaller_industrimineral_beviljade value-map: - 'Diary nr': - - replace: '' + licenceid: + - replace: '-' with: null - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appr_dl + publish: appr_met - 'mrr:mineral_applied': - description: Undersökningstillstånd, metallar och mineral, ansökta (SGU) + 'mrr:ut_diamant_beviljade': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Diamant, beviljade (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String unique: true nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Namn på beviljat undersökningstillstånd + - name: licenceid type: String - nullable: false - width: 254 - comment: Koncessionsmineral - - name: Applicant + unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr type: String + unique: true nullable: false - width: 254 - comment: Sökandens namn - - name: ApplicationDate + width: 16 + comment: Ärendenummer i diariet + - name: appl_date + type: Date + nullable: false + comment: Datum när ansökan inkom till Bergsstaten + - name: dec_date + type: Date + nullable: false + comment: Datum när undersökningstillståndet beviljades + - name: validfrom type: Date nullable: false - - name: DiaryNr + comment: Datum från och med när undersökningstillståndet började gälla + - name: validto + type: Date + nullable: false + comment: Sista dagen undersökningstillståndet gäller + - name: mineral type: String - unique: true nullable: false - width: 16 - - name: LastUpdated + width: 254 + comment: Koncessionsmineral som eftersöks + - name: owners + type: String + nullable: false + width: 254 + comment: Innehavare av undersökningstillståndet + - name: export_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.MINERAL_APPLIED_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Applicant': Applicant - 'Application date': ApplicationDate - 'Diary nr': DiaryNr - 'Last updated': LastUpdated + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_diamant_beviljade value-map: - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appl_met + licenceid: + - replace: '-' + with: null + publish: appr_ogd - 'mrr:mineral_approved': - description: Undersökningstillstånd, metallar och mineral, beviljade (SGU) + 'mrr:bearbetningskoncessioner_beviljade': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Bearbetningskoncessioner, beviljade (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String unique: true nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Namn på beviljad bearbetningskoncession + - name: licenceid + type: String + unique: true + width: 16 + comment: Tillståndsid för bearbetningskoncessionen + - name: diarynr + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: appl_date + type: Date + nullable: false + comment: Datum när ansökan inkom till Bergsstaten + - name: dec_date + type: Date + nullable: false + comment: Datum när bearbetningskoncessionen beviljades + - name: validfrom + type: Date + nullable: false + comment: Datum från och med när bearbetningskoncessionen började gälla + - name: validto + type: Date + nullable: false + comment: Sista dagen bearbetningskoncessionen gäller + - name: mineral type: String nullable: false width: 254 comment: Koncessionsmineral - - name: Owner + - name: owners + type: String + nullable: false + width: 254 + comment: Innehavare av bearbetningskoncessionen + - name: export_date + type: Date + nullable: false + comment: Datum då uttag från mineralrättsregistret gjordes + source: + path: mrr/mineralrattigheter.zip + unar: + format: zip + import: + path: mineralrattigheter.gpkg + format: GPKG + layername: bearbetningskoncessioner_beviljade + value-map: + licenceid: + - replace: '-' + with: null + publish: appr_ec + + 'mrr:markanvisningar_bk_beviljade': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Markanvisningar till bearbetningskoncessioner, beviljade (SGU) + create: + geometry-type: MULTIPOLYGON + fields: + - name: name type: String nullable: false width: 254 - comment: Ägares namn - - name: LicenceID + comment: Namn på beviljad markanvisning + - name: licenceid type: String unique: true + width: 16 + comment: Tillståndsid för markanvisningen + - name: diarynr + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: conc_name + type: String nullable: false - width: 8 - - name: ValidFrom + width: 254 + comment: Bearbetningskoncession(er) som markanvisningen hör till + - name: appl_date type: Date nullable: false - comment: När tillståndets giltighet börjar - - name: ValidTo + comment: Datum när ansökan inkom till Bergsstaten + - name: dec_date type: Date nullable: false - comment: När tillståndets giltighet slutar - - name: DiaryNr - type: String - unique: true - width: 16 - - name: LastUpdated + comment: Datum när markanvisningen beviljades + - name: export_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.MINERAL_APPROVED_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Owner': Owner - 'Licence id': LicenceID - 'Valid from': ValidFrom - 'Valid to': ValidTo - 'Diary nr': DiaryNr - 'Last updated': LastUpdated + path: mineralrattigheter.gpkg + format: GPKG + layername: markanvisningar_bk_beviljade value-map: - 'Diary nr': - - replace: '' + licenceid: + - replace: '-' with: null - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appr_met - -# 'mrr:mineral_expired': -# source: -# path: mrr/mineralrattigheter.zip -# -# 'mrr:mineral_prohibited': -# source: -# path: mrr/mineralrattigheter.zip -# -# 'mrr:ogd_expired': -# source: -# path: mrr/mineralrattigheter.zip -# -# 'mrr:ogd_prohibited': -# source: -# path: mrr/mineralrattigheter.zip + publish: appr_dl - 'mrr:olja_gas_diamant_applied': - description: Undersökningstillstånd, olja, gas och diamant, ansökta (SGU) + 'mrr:ut_metaller_industrimineral_forbud': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Metaller och industrimineral, förbud (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String unique: true nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Namn på undersökningstillstånd under förbudsår + - name: licenceid + type: String + unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: validfrom + type: Date + nullable: false + comment: Datum då undersökningstillståndets förbudsår startar + - name: validto + type: Date + nullable: false + comment: Datum då undersökningstillståndets förbudsår slutar + - name: mineral type: String nullable: false width: 254 - comment: Koncessionsmineral - - name: Applicant + comment: Koncessionsmineral som eftersökts + - name: owners type: String nullable: false width: 254 - comment: Sökandens namn - - name: ApplicationDate + comment: Innehavare av undersökningstillståndet + - name: prospdata_url + type: String + width: 254 + comment: Länk till nedladdning av återrapporterad prospekteringsinformation + - name: prospdata_filesize_mb + type: Real + subtype: Float32 + comment: Filstorlek i Mb för återrapporterad prospekteringsinformation + - name: export_date type: Date nullable: false - - name: DiaryNr + comment: Datum då uttag från mineralrättsregistret gjordes + source: + path: mrr/mineralrattigheter.zip + unar: + format: zip + import: + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_metaller_industrimineral_forbud + value-map: + licenceid: + - replace: '-' + with: null + + 'mrr:ut_diamant_forbud': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Diamant, förbud (SGU) + create: + geometry-type: MULTIPOLYGON + fields: + - name: name + type: String + unique: true + nullable: false + width: 254 + comment: Namn på undersökningstillstånd under förbudsår + - name: licenceid type: String unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true nullable: false width: 16 - - name: LastUpdated + comment: Ärendenummer i diariet + - name: validfrom + type: Date + nullable: false + comment: Datum då undersökningstillståndets förbudsår startar + - name: validto type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum då undersökningstillståndets förbudsår slutar + - name: mineral + type: String + nullable: false + width: 254 + comment: Koncessionsmineral som eftersökts + - name: owners + type: String + nullable: false + width: 254 + comment: Innehavare av undersökningstillståndet + - name: prospdata_url + type: String + width: 254 + comment: Länk till nedladdning av återrapporterad prospekteringsinformation + - name: prospdata_filesize_mb + type: Real + subtype: Float32 + comment: Filstorlek i Mb för återrapporterad prospekteringsinformation + - name: export_date + type: Date + nullable: false + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.OLJA_GAS_DIAMANT_APPLIED_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Applicant': Applicant - 'Application date': ApplicationDate - 'Diary nr': DiaryNr - 'Last updated': LastUpdated + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_diamant_forbud value-map: - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appl_ogd + licenceid: + - replace: '-' + with: null - 'mrr:olja_gas_diamant_approved': - description: Undersökningstillstånd, olja, gas och diamant, beviljade (SGU) + 'mrr:ut_metaller_industrimineral_forfallna': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Metaller och industrimineral, förfallna (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true + nullable: false + width: 254 + comment: Namn på förfallet undersökningstillstånd + - name: licenceid type: String unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true + nullable: false + width: 16 + comment: Ärendenummer i diariet + - name: validfrom + type: Date + nullable: false + comment: Datum från och med när undersökningstillståndet började gälla + - name: validto + type: Date + nullable: false + comment: Sista dagen undersökningstillståndet gällde + - name: mineral + type: String nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Koncessionsmineral som eftersökts + - name: owners type: String nullable: false + width: 510 + comment: Innehavare av undersökningstillståndet + - name: prospdata_url + type: String width: 254 - comment: Koncessionsmineral - - name: Owner + comment: Länk till nedladdning av återrapporterad prospekteringsinformation + - name: prospdata_filesize_mb + type: Real + subtype: Float32 + comment: Filstorlek i Mb för återrapporterad prospekteringsinformation + - name: export_date + type: Date + nullable: false + comment: Datum då uttag från mineralrättsregistret gjordes + source: + path: mrr/mineralrattigheter.zip + unar: + format: zip + import: + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_metaller_industrimineral_forfallna + value-map: + licenceid: + - replace: '-' + with: null + + 'mrr:ut_olja_gas_diamant_forfallna': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Undersökningstillstånd - Olja, gas och diamant, förfallna (SGU) + create: + geometry-type: MULTIPOLYGON + fields: + - name: name type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true nullable: false width: 254 - comment: Ägares namn - - name: LicenceID + comment: Namn på förfallet undersökningstillstånd + - name: licenceid type: String unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr + type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true nullable: false - width: 8 - - name: ValidFrom + width: 16 + comment: Ärendenummer i diariet + - name: validfrom type: Date nullable: false - comment: När tillståndets giltighet börjar - - name: ValidTo + comment: Datum från och med när undersökningstillståndet började gälla + - name: validto type: Date nullable: false - comment: När tillståndets giltighet slutar - - name: DiaryNr + comment: Sista dagen undersökningstillståndet gällde + - name: mineral type: String - unique: true - width: 16 - - name: LastUpdated + nullable: false + width: 254 + comment: Koncessionsmineral som eftersökts + - name: owners + type: String + nullable: false + width: 510 + comment: Innehavare av undersökningstillståndet + - name: prospdata_url + type: String + width: 254 + comment: Länk till nedladdning av återrapporterad prospekteringsinformation + - name: prospdata_filesize_mb + type: Real + subtype: Float32 + comment: Filstorlek i Mb för återrapporterad prospekteringsinformation + - name: export_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.OLJA_GAS_DIAMANT_APPROVED_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Owner': Owner - 'Licence id': LicenceID - 'Valid from': ValidFrom - 'Valid to': ValidTo - 'Diary nr': DiaryNr - 'Last updated': LastUpdated + path: mineralrattigheter.gpkg + format: GPKG + layername: ut_olja_gas_diamant_forfallna value-map: - 'Diary nr': - - replace: '' + licenceid: + - replace: '-' with: null - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appr_ogd - 'mrr:torvkoncessioner': - description: Torvkoncessioner (SGU) + 'mrr:bearbetningskoncessioner_forfallna': + # https://resource.sgu.se/dokument/produkter/mineralrattigheter-beskrivning.pdf + description: Bearbetningskoncessioner, förfallna (SGU) create: geometry-type: MULTIPOLYGON fields: - - name: Name + - name: name type: String unique: true nullable: false width: 254 - comment: Benämning på området - - name: Mineral + comment: Namn på förfallen bearbetningskoncession + - name: licenceid type: String - width: 254 - comment: Koncessionsmineral - - name: Owner + # XXX how come there is no UNIQUE constraint here? + #unique: true + width: 16 + comment: Tillståndsid för undersökningstillståndet + - name: diarynr type: String + # XXX how come there is no UNIQUE constraint here? + #unique: true nullable: false - width: 254 - comment: Ägares namn - - name: ValidFrom - type: Date - nullable: false - comment: När tillståndets giltighet börjar - - name: ValidTo + width: 16 + comment: Ärendenummer i diariet + - name: appl_date type: Date + comment: Datum när ansökan inkom till Bergsstaten + - name: mineral + type: String nullable: false - comment: När tillståndets giltighet slutar - - name: DiaryNr + width: 254 + comment: Koncessionsmineral + - name: owners type: String - unique: true - width: 16 - - name: LastUpdated + nullable: false + width: 254 + comment: Innehavare av bearbetningskoncessionen + - name: export_date type: Date nullable: false - comment: Datum för senaste uppdatering + comment: Datum då uttag från mineralrättsregistret gjordes source: path: mrr/mineralrattigheter.zip + unar: + format: zip import: - format: GeoJSON - layername: 'MRR:SE.GOV.SGU.MRR.TORVKONCESSIONER_VY' - field-map: - 'Name': Name - 'Mineral': Mineral - 'Owner': Owner - 'Valid from': ValidFrom - 'Valid to': ValidTo - 'Diary nr': DiaryNr - 'Last updated': LastUpdated + path: mineralrattigheter.gpkg + format: GPKG + layername: bearbetningskoncessioner_forfallna value-map: - 'Mineral': - - replace: '' - with: null - 'Diary nr': - - replace: '' + licenceid: + - replace: '-' with: null - 'Last updated': - - replace: '([0-9]{4})([0-9]{2})([0-9]{2})' - with: '{0}-{1}-{2}' - type: regex - publish: appr_pc 'ri:naturvard': # https://geodatakatalogen.naturvardsverket.se/geonetwork/srv/swe/catalog.search#/metadata/fb9ff32f-b6f8-4d8e-ac5c-20ebb0986908 @@ -274,35 +274,35 @@ ALTER SEQUENCE postgis.lansyta_ogc_fid_seq OWNED BY postgis.lansyta.ogc_fid; -- --- Name: mrr:bearbetningskoncessioner_applied; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_ansokta; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:bearbetningskoncessioner_applied" ( +CREATE TABLE postgis."mrr:bearbetningskoncessioner_ansokta" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254) NOT NULL, - "Applicant" character varying(254) NOT NULL, - "ApplicationDate" date NOT NULL, - "DiaryNr" character varying(16) NOT NULL, - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + diarynr character varying(16) NOT NULL, + appl_date date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:bearbetningskoncessioner_applied" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:bearbetningskoncessioner_ansokta" OWNER TO webmap_import; -- --- Name: TABLE "mrr:bearbetningskoncessioner_applied"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:bearbetningskoncessioner_ansokta"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:bearbetningskoncessioner_applied" IS 'Bearbetningskoncessioner, ansökta (SGU)'; +COMMENT ON TABLE postgis."mrr:bearbetningskoncessioner_ansokta" IS 'Bearbetningskoncessioner, ansökta (SGU)'; -- --- Name: mrr:bearbetningskoncessioner_applied_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_applied_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -310,46 +310,49 @@ CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_applied_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:bearbetningskoncessioner_applied_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:bearbetningskoncessioner_applied_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:bearbetningskoncessioner_applied_ogc_fid_seq" OWNED BY postgis."mrr:bearbetningskoncessioner_applied".ogc_fid; +ALTER SEQUENCE postgis."mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq" OWNED BY postgis."mrr:bearbetningskoncessioner_ansokta".ogc_fid; -- --- Name: mrr:bearbetningskoncessioner_approved; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_beviljade; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:bearbetningskoncessioner_approved" ( +CREATE TABLE postgis."mrr:bearbetningskoncessioner_beviljade" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254) NOT NULL, - "Owner" character varying(254) NOT NULL, - "ValidFrom" date NOT NULL, - "ValidTo" date NOT NULL, - "DiaryNr" character varying(16), - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + appl_date date NOT NULL, + dec_date date NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:bearbetningskoncessioner_approved" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:bearbetningskoncessioner_beviljade" OWNER TO webmap_import; -- --- Name: TABLE "mrr:bearbetningskoncessioner_approved"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:bearbetningskoncessioner_beviljade"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:bearbetningskoncessioner_approved" IS 'Bearbetningskoncessioner, beviljade (SGU)'; +COMMENT ON TABLE postgis."mrr:bearbetningskoncessioner_beviljade" IS 'Bearbetningskoncessioner, beviljade (SGU)'; -- --- Name: mrr:bearbetningskoncessioner_approved_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_approved_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -357,43 +360,46 @@ CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_approved_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:bearbetningskoncessioner_approved_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:bearbetningskoncessioner_approved_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:bearbetningskoncessioner_approved_ogc_fid_seq" OWNED BY postgis."mrr:bearbetningskoncessioner_approved".ogc_fid; +ALTER SEQUENCE postgis."mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq" OWNED BY postgis."mrr:bearbetningskoncessioner_beviljade".ogc_fid; -- --- Name: mrr:markanvisningar; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_forfallna; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:markanvisningar" ( +CREATE TABLE postgis."mrr:bearbetningskoncessioner_forfallna" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "DecisionDate" date, - "DiaryNr" character varying(16), - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + appl_date date, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:markanvisningar" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:bearbetningskoncessioner_forfallna" OWNER TO webmap_import; -- --- Name: TABLE "mrr:markanvisningar"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:bearbetningskoncessioner_forfallna"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:markanvisningar" IS 'Markanvisning till koncession (SGU)'; +COMMENT ON TABLE postgis."mrr:bearbetningskoncessioner_forfallna" IS 'Bearbetningskoncessioner, förfallna (SGU)'; -- --- Name: mrr:markanvisningar_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:markanvisningar_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -401,45 +407,44 @@ CREATE SEQUENCE postgis."mrr:markanvisningar_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:markanvisningar_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:markanvisningar_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:markanvisningar_ogc_fid_seq" OWNED BY postgis."mrr:markanvisningar".ogc_fid; +ALTER SEQUENCE postgis."mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq" OWNED BY postgis."mrr:bearbetningskoncessioner_forfallna".ogc_fid; -- --- Name: mrr:mineral_applied; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_ansokta; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:mineral_applied" ( +CREATE TABLE postgis."mrr:markanvisningar_bk_ansokta" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254) NOT NULL, - "Applicant" character varying(254) NOT NULL, - "ApplicationDate" date NOT NULL, - "DiaryNr" character varying(16) NOT NULL, - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + diarynr character varying(16) NOT NULL, + conc_name character varying(254) NOT NULL, + appl_date date NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:mineral_applied" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:markanvisningar_bk_ansokta" OWNER TO webmap_import; -- --- Name: TABLE "mrr:mineral_applied"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:markanvisningar_bk_ansokta"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:mineral_applied" IS 'Undersökningstillstånd, metallar och mineral, ansökta (SGU)'; +COMMENT ON TABLE postgis."mrr:markanvisningar_bk_ansokta" IS 'Markanvisningar till bearbetningskoncessioner, ansökta (SGU)'; -- --- Name: mrr:mineral_applied_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_ansokta_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:mineral_applied_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:markanvisningar_bk_ansokta_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -447,47 +452,46 @@ CREATE SEQUENCE postgis."mrr:mineral_applied_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:mineral_applied_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:markanvisningar_bk_ansokta_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:mineral_applied_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_ansokta_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:mineral_applied_ogc_fid_seq" OWNED BY postgis."mrr:mineral_applied".ogc_fid; +ALTER SEQUENCE postgis."mrr:markanvisningar_bk_ansokta_ogc_fid_seq" OWNED BY postgis."mrr:markanvisningar_bk_ansokta".ogc_fid; -- --- Name: mrr:mineral_approved; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_beviljade; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:mineral_approved" ( +CREATE TABLE postgis."mrr:markanvisningar_bk_beviljade" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254) NOT NULL, - "Owner" character varying(254) NOT NULL, - "LicenceID" character varying(8) NOT NULL, - "ValidFrom" date NOT NULL, - "ValidTo" date NOT NULL, - "DiaryNr" character varying(16), - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + conc_name character varying(254) NOT NULL, + appl_date date NOT NULL, + dec_date date NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:mineral_approved" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:markanvisningar_bk_beviljade" OWNER TO webmap_import; -- --- Name: TABLE "mrr:mineral_approved"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:markanvisningar_bk_beviljade"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:mineral_approved" IS 'Undersökningstillstånd, metallar och mineral, beviljade (SGU)'; +COMMENT ON TABLE postgis."mrr:markanvisningar_bk_beviljade" IS 'Markanvisningar till bearbetningskoncessioner, beviljade (SGU)'; -- --- Name: mrr:mineral_approved_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_beviljade_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:mineral_approved_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:markanvisningar_bk_beviljade_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -495,45 +499,45 @@ CREATE SEQUENCE postgis."mrr:mineral_approved_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:mineral_approved_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:markanvisningar_bk_beviljade_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:mineral_approved_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_beviljade_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:mineral_approved_ogc_fid_seq" OWNED BY postgis."mrr:mineral_approved".ogc_fid; +ALTER SEQUENCE postgis."mrr:markanvisningar_bk_beviljade_ogc_fid_seq" OWNED BY postgis."mrr:markanvisningar_bk_beviljade".ogc_fid; -- --- Name: mrr:olja_gas_diamant_applied; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:olja_gas_diamant_applied" ( +CREATE TABLE postgis."mrr:ut_diamant_ansokta" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254) NOT NULL, - "Applicant" character varying(254) NOT NULL, - "ApplicationDate" date NOT NULL, - "DiaryNr" character varying(16) NOT NULL, - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + diarynr character varying(16) NOT NULL, + appl_date date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:olja_gas_diamant_applied" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:ut_diamant_ansokta" OWNER TO webmap_import; -- --- Name: TABLE "mrr:olja_gas_diamant_applied"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_diamant_ansokta"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:olja_gas_diamant_applied" IS 'Undersökningstillstånd, olja, gas och diamant, ansökta (SGU)'; +COMMENT ON TABLE postgis."mrr:ut_diamant_ansokta" IS 'Undersökningstillstånd - Diamant, ansökta (SGU)'; -- --- Name: mrr:olja_gas_diamant_applied_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:olja_gas_diamant_applied_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:ut_diamant_ansokta_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -541,47 +545,49 @@ CREATE SEQUENCE postgis."mrr:olja_gas_diamant_applied_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:olja_gas_diamant_applied_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:ut_diamant_ansokta_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:olja_gas_diamant_applied_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:olja_gas_diamant_applied_ogc_fid_seq" OWNED BY postgis."mrr:olja_gas_diamant_applied".ogc_fid; +ALTER SEQUENCE postgis."mrr:ut_diamant_ansokta_ogc_fid_seq" OWNED BY postgis."mrr:ut_diamant_ansokta".ogc_fid; -- --- Name: mrr:olja_gas_diamant_approved; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:olja_gas_diamant_approved" ( +CREATE TABLE postgis."mrr:ut_diamant_beviljade" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254) NOT NULL, - "Owner" character varying(254) NOT NULL, - "LicenceID" character varying(8) NOT NULL, - "ValidFrom" date NOT NULL, - "ValidTo" date NOT NULL, - "DiaryNr" character varying(16), - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + appl_date date NOT NULL, + dec_date date NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:olja_gas_diamant_approved" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:ut_diamant_beviljade" OWNER TO webmap_import; -- --- Name: TABLE "mrr:olja_gas_diamant_approved"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_diamant_beviljade"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:olja_gas_diamant_approved" IS 'Undersökningstillstånd, olja, gas och diamant, beviljade (SGU)'; +COMMENT ON TABLE postgis."mrr:ut_diamant_beviljade" IS 'Undersökningstillstånd - Diamant, beviljade (SGU)'; -- --- Name: mrr:olja_gas_diamant_approved_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:olja_gas_diamant_approved_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:ut_diamant_beviljade_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -589,46 +595,49 @@ CREATE SEQUENCE postgis."mrr:olja_gas_diamant_approved_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:olja_gas_diamant_approved_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:ut_diamant_beviljade_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:olja_gas_diamant_approved_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:olja_gas_diamant_approved_ogc_fid_seq" OWNED BY postgis."mrr:olja_gas_diamant_approved".ogc_fid; +ALTER SEQUENCE postgis."mrr:ut_diamant_beviljade_ogc_fid_seq" OWNED BY postgis."mrr:ut_diamant_beviljade".ogc_fid; -- --- Name: mrr:torvkoncessioner; Type: TABLE; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud; Type: TABLE; Schema: postgis; Owner: webmap_import -- -CREATE TABLE postgis."mrr:torvkoncessioner" ( +CREATE TABLE postgis."mrr:ut_diamant_forbud" ( ogc_fid bigint NOT NULL, - "Name" character varying(254) NOT NULL, - "Mineral" character varying(254), - "Owner" character varying(254) NOT NULL, - "ValidFrom" date NOT NULL, - "ValidTo" date NOT NULL, - "DiaryNr" character varying(16), - "LastUpdated" date NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + prospdata_url character varying(254), + prospdata_filesize_mb real, + export_date date NOT NULL, wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL ); -ALTER TABLE postgis."mrr:torvkoncessioner" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:ut_diamant_forbud" OWNER TO webmap_import; -- --- Name: TABLE "mrr:torvkoncessioner"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_diamant_forbud"; Type: COMMENT; Schema: postgis; Owner: webmap_import -- -COMMENT ON TABLE postgis."mrr:torvkoncessioner" IS 'Torvkoncessioner (SGU)'; +COMMENT ON TABLE postgis."mrr:ut_diamant_forbud" IS 'Undersökningstillstånd - Diamant, förbud (SGU)'; -- --- Name: mrr:torvkoncessioner_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import -- -CREATE SEQUENCE postgis."mrr:torvkoncessioner_ogc_fid_seq" +CREATE SEQUENCE postgis."mrr:ut_diamant_forbud_ogc_fid_seq" START WITH 1 INCREMENT BY 1 NO MINVALUE @@ -636,13 +645,259 @@ CREATE SEQUENCE postgis."mrr:torvkoncessioner_ogc_fid_seq" CACHE 1; -ALTER TABLE postgis."mrr:torvkoncessioner_ogc_fid_seq" OWNER TO webmap_import; +ALTER TABLE postgis."mrr:ut_diamant_forbud_ogc_fid_seq" OWNER TO webmap_import; -- --- Name: mrr:torvkoncessioner_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import -- -ALTER SEQUENCE postgis."mrr:torvkoncessioner_ogc_fid_seq" OWNED BY postgis."mrr:torvkoncessioner".ogc_fid; +ALTER SEQUENCE postgis."mrr:ut_diamant_forbud_ogc_fid_seq" OWNED BY postgis."mrr:ut_diamant_forbud".ogc_fid; + + +-- +-- Name: mrr:ut_metaller_industrimineral_ansokta; Type: TABLE; Schema: postgis; Owner: webmap_import +-- + +CREATE TABLE postgis."mrr:ut_metaller_industrimineral_ansokta" ( + ogc_fid bigint NOT NULL, + name character varying(254) NOT NULL, + diarynr character varying(16) NOT NULL, + appl_date date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, + wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL +); + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_ansokta" OWNER TO webmap_import; + +-- +-- Name: TABLE "mrr:ut_metaller_industrimineral_ansokta"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- + +COMMENT ON TABLE postgis."mrr:ut_metaller_industrimineral_ansokta" IS 'Undersökningstillstånd - Metaller och industrimineral, ansökta (SGU)'; + + +-- +-- Name: mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- + +CREATE SEQUENCE postgis."mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq" OWNER TO webmap_import; + +-- +-- Name: mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- + +ALTER SEQUENCE postgis."mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq" OWNED BY postgis."mrr:ut_metaller_industrimineral_ansokta".ogc_fid; + + +-- +-- Name: mrr:ut_metaller_industrimineral_beviljade; Type: TABLE; Schema: postgis; Owner: webmap_import +-- + +CREATE TABLE postgis."mrr:ut_metaller_industrimineral_beviljade" ( + ogc_fid bigint NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + appl_date date NOT NULL, + dec_date date NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + export_date date NOT NULL, + wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL +); + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_beviljade" OWNER TO webmap_import; + +-- +-- Name: TABLE "mrr:ut_metaller_industrimineral_beviljade"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- + +COMMENT ON TABLE postgis."mrr:ut_metaller_industrimineral_beviljade" IS 'Undersökningstillstånd - Metaller och industrimineral, beviljade (SGU)'; + + +-- +-- Name: mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- + +CREATE SEQUENCE postgis."mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq" OWNER TO webmap_import; + +-- +-- Name: mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- + +ALTER SEQUENCE postgis."mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq" OWNED BY postgis."mrr:ut_metaller_industrimineral_beviljade".ogc_fid; + + +-- +-- Name: mrr:ut_metaller_industrimineral_forbud; Type: TABLE; Schema: postgis; Owner: webmap_import +-- + +CREATE TABLE postgis."mrr:ut_metaller_industrimineral_forbud" ( + ogc_fid bigint NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(254) NOT NULL, + prospdata_url character varying(254), + prospdata_filesize_mb real, + export_date date NOT NULL, + wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL +); + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_forbud" OWNER TO webmap_import; + +-- +-- Name: TABLE "mrr:ut_metaller_industrimineral_forbud"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- + +COMMENT ON TABLE postgis."mrr:ut_metaller_industrimineral_forbud" IS 'Undersökningstillstånd - Metaller och industrimineral, förbud (SGU)'; + + +-- +-- Name: mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- + +CREATE SEQUENCE postgis."mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq" OWNER TO webmap_import; + +-- +-- Name: mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- + +ALTER SEQUENCE postgis."mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq" OWNED BY postgis."mrr:ut_metaller_industrimineral_forbud".ogc_fid; + + +-- +-- Name: mrr:ut_metaller_industrimineral_forfallna; Type: TABLE; Schema: postgis; Owner: webmap_import +-- + +CREATE TABLE postgis."mrr:ut_metaller_industrimineral_forfallna" ( + ogc_fid bigint NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(510) NOT NULL, + prospdata_url character varying(254), + prospdata_filesize_mb real, + export_date date NOT NULL, + wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL +); + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_forfallna" OWNER TO webmap_import; + +-- +-- Name: TABLE "mrr:ut_metaller_industrimineral_forfallna"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- + +COMMENT ON TABLE postgis."mrr:ut_metaller_industrimineral_forfallna" IS 'Undersökningstillstånd - Metaller och industrimineral, förfallna (SGU)'; + + +-- +-- Name: mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- + +CREATE SEQUENCE postgis."mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE postgis."mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq" OWNER TO webmap_import; + +-- +-- Name: mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- + +ALTER SEQUENCE postgis."mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq" OWNED BY postgis."mrr:ut_metaller_industrimineral_forfallna".ogc_fid; + + +-- +-- Name: mrr:ut_olja_gas_diamant_forfallna; Type: TABLE; Schema: postgis; Owner: webmap_import +-- + +CREATE TABLE postgis."mrr:ut_olja_gas_diamant_forfallna" ( + ogc_fid bigint NOT NULL, + name character varying(254) NOT NULL, + licenceid character varying(16), + diarynr character varying(16) NOT NULL, + validfrom date NOT NULL, + validto date NOT NULL, + mineral character varying(254) NOT NULL, + owners character varying(510) NOT NULL, + prospdata_url character varying(254), + prospdata_filesize_mb real, + export_date date NOT NULL, + wkb_geometry postgis.geometry(MultiPolygon,3006) NOT NULL +); + + +ALTER TABLE postgis."mrr:ut_olja_gas_diamant_forfallna" OWNER TO webmap_import; + +-- +-- Name: TABLE "mrr:ut_olja_gas_diamant_forfallna"; Type: COMMENT; Schema: postgis; Owner: webmap_import +-- + +COMMENT ON TABLE postgis."mrr:ut_olja_gas_diamant_forfallna" IS 'Undersökningstillstånd - Olja, gas och diamant, förfallna (SGU)'; + + +-- +-- Name: mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq; Type: SEQUENCE; Schema: postgis; Owner: webmap_import +-- + +CREATE SEQUENCE postgis."mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq" + START WITH 1 + INCREMENT BY 1 + NO MINVALUE + NO MAXVALUE + CACHE 1; + + +ALTER TABLE postgis."mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq" OWNER TO webmap_import; + +-- +-- Name: mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq; Type: SEQUENCE OWNED BY; Schema: postgis; Owner: webmap_import +-- + +ALTER SEQUENCE postgis."mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq" OWNED BY postgis."mrr:ut_olja_gas_diamant_forfallna".ogc_fid; -- @@ -2820,59 +3075,94 @@ ALTER TABLE ONLY postgis.lansyta ALTER COLUMN ogc_fid SET DEFAULT nextval('postg -- --- Name: mrr:bearbetningskoncessioner_applied ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_ansokta ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_ansokta" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq"'::regclass); + + +-- +-- Name: mrr:bearbetningskoncessioner_beviljade ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_beviljade" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq"'::regclass); + + +-- +-- Name: mrr:bearbetningskoncessioner_forfallna ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_applied" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:bearbetningskoncessioner_applied_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_forfallna" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq"'::regclass); -- --- Name: mrr:bearbetningskoncessioner_approved ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_ansokta ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_approved" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:bearbetningskoncessioner_approved_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_ansokta" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:markanvisningar_bk_ansokta_ogc_fid_seq"'::regclass); -- --- Name: mrr:markanvisningar ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_beviljade ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:markanvisningar" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:markanvisningar_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_beviljade" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:markanvisningar_bk_beviljade_ogc_fid_seq"'::regclass); -- --- Name: mrr:mineral_applied ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_applied" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:mineral_applied_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:ut_diamant_ansokta" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_diamant_ansokta_ogc_fid_seq"'::regclass); -- --- Name: mrr:mineral_approved ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_approved" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:mineral_approved_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:ut_diamant_beviljade" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_diamant_beviljade_ogc_fid_seq"'::regclass); -- --- Name: mrr:olja_gas_diamant_applied ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_applied" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:olja_gas_diamant_applied_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:ut_diamant_forbud" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_diamant_forbud_ogc_fid_seq"'::regclass); -- --- Name: mrr:olja_gas_diamant_approved ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_ansokta ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_approved" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:olja_gas_diamant_approved_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_ansokta" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq"'::regclass); -- --- Name: mrr:torvkoncessioner ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_beviljade ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:torvkoncessioner" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:torvkoncessioner_ogc_fid_seq"'::regclass); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_beviljade" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq"'::regclass); + + +-- +-- Name: mrr:ut_metaller_industrimineral_forbud ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forbud" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq"'::regclass); + + +-- +-- Name: mrr:ut_metaller_industrimineral_forfallna ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forfallna" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq"'::regclass); + + +-- +-- Name: mrr:ut_olja_gas_diamant_forfallna ogc_fid; Type: DEFAULT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:ut_olja_gas_diamant_forfallna" ALTER COLUMN ogc_fid SET DEFAULT nextval('postgis."mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq"'::regclass); -- @@ -3242,187 +3532,299 @@ ALTER TABLE ONLY postgis.lansyta -- --- Name: mrr:bearbetningskoncessioner_applied mrr:bearbetningskoncessioner_applied_DiaryNr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_ansokta mrr:bearbetningskoncessioner_ansokta_diarynr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_ansokta" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_ansokta_diarynr_key" UNIQUE (diarynr); + + +-- +-- Name: mrr:bearbetningskoncessioner_ansokta mrr:bearbetningskoncessioner_ansokta_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_ansokta" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_ansokta_name_key" UNIQUE (name); + + +-- +-- Name: mrr:bearbetningskoncessioner_ansokta mrr:bearbetningskoncessioner_ansokta_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_ansokta" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_ansokta_pkey" PRIMARY KEY (ogc_fid); + + +-- +-- Name: mrr:bearbetningskoncessioner_beviljade mrr:bearbetningskoncessioner_beviljade_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_beviljade" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_beviljade_licenceid_key" UNIQUE (licenceid); + + +-- +-- Name: mrr:bearbetningskoncessioner_beviljade mrr:bearbetningskoncessioner_beviljade_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_beviljade" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_beviljade_name_key" UNIQUE (name); + + +-- +-- Name: mrr:bearbetningskoncessioner_beviljade mrr:bearbetningskoncessioner_beviljade_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_beviljade" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_beviljade_pkey" PRIMARY KEY (ogc_fid); + + +-- +-- Name: mrr:bearbetningskoncessioner_forfallna mrr:bearbetningskoncessioner_forfallna_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_forfallna" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_forfallna_name_key" UNIQUE (name); + + +-- +-- Name: mrr:bearbetningskoncessioner_forfallna mrr:bearbetningskoncessioner_forfallna_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_forfallna" + ADD CONSTRAINT "mrr:bearbetningskoncessioner_forfallna_pkey" PRIMARY KEY (ogc_fid); + + +-- +-- Name: mrr:markanvisningar_bk_ansokta mrr:markanvisningar_bk_ansokta_diarynr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_ansokta" + ADD CONSTRAINT "mrr:markanvisningar_bk_ansokta_diarynr_key" UNIQUE (diarynr); + + +-- +-- Name: mrr:markanvisningar_bk_ansokta mrr:markanvisningar_bk_ansokta_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_ansokta" + ADD CONSTRAINT "mrr:markanvisningar_bk_ansokta_name_key" UNIQUE (name); + + +-- +-- Name: mrr:markanvisningar_bk_ansokta mrr:markanvisningar_bk_ansokta_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_ansokta" + ADD CONSTRAINT "mrr:markanvisningar_bk_ansokta_pkey" PRIMARY KEY (ogc_fid); + + +-- +-- Name: mrr:markanvisningar_bk_beviljade mrr:markanvisningar_bk_beviljade_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_beviljade" + ADD CONSTRAINT "mrr:markanvisningar_bk_beviljade_licenceid_key" UNIQUE (licenceid); + + +-- +-- Name: mrr:markanvisningar_bk_beviljade mrr:markanvisningar_bk_beviljade_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:markanvisningar_bk_beviljade" + ADD CONSTRAINT "mrr:markanvisningar_bk_beviljade_pkey" PRIMARY KEY (ogc_fid); + + +-- +-- Name: mrr:ut_diamant_ansokta mrr:ut_diamant_ansokta_diarynr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_applied" - ADD CONSTRAINT "mrr:bearbetningskoncessioner_applied_DiaryNr_key" UNIQUE ("DiaryNr"); +ALTER TABLE ONLY postgis."mrr:ut_diamant_ansokta" + ADD CONSTRAINT "mrr:ut_diamant_ansokta_diarynr_key" UNIQUE (diarynr); -- --- Name: mrr:bearbetningskoncessioner_applied mrr:bearbetningskoncessioner_applied_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta mrr:ut_diamant_ansokta_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_applied" - ADD CONSTRAINT "mrr:bearbetningskoncessioner_applied_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_diamant_ansokta" + ADD CONSTRAINT "mrr:ut_diamant_ansokta_name_key" UNIQUE (name); -- --- Name: mrr:bearbetningskoncessioner_applied mrr:bearbetningskoncessioner_applied_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta mrr:ut_diamant_ansokta_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_applied" - ADD CONSTRAINT "mrr:bearbetningskoncessioner_applied_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_diamant_ansokta" + ADD CONSTRAINT "mrr:ut_diamant_ansokta_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:bearbetningskoncessioner_approved mrr:bearbetningskoncessioner_approved_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade mrr:ut_diamant_beviljade_diarynr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_approved" - ADD CONSTRAINT "mrr:bearbetningskoncessioner_approved_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_diamant_beviljade" + ADD CONSTRAINT "mrr:ut_diamant_beviljade_diarynr_key" UNIQUE (diarynr); -- --- Name: mrr:bearbetningskoncessioner_approved mrr:bearbetningskoncessioner_approved_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade mrr:ut_diamant_beviljade_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:bearbetningskoncessioner_approved" - ADD CONSTRAINT "mrr:bearbetningskoncessioner_approved_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_diamant_beviljade" + ADD CONSTRAINT "mrr:ut_diamant_beviljade_licenceid_key" UNIQUE (licenceid); -- --- Name: mrr:markanvisningar mrr:markanvisningar_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade mrr:ut_diamant_beviljade_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:markanvisningar" - ADD CONSTRAINT "mrr:markanvisningar_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_diamant_beviljade" + ADD CONSTRAINT "mrr:ut_diamant_beviljade_name_key" UNIQUE (name); -- --- Name: mrr:mineral_applied mrr:mineral_applied_DiaryNr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade mrr:ut_diamant_beviljade_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_applied" - ADD CONSTRAINT "mrr:mineral_applied_DiaryNr_key" UNIQUE ("DiaryNr"); +ALTER TABLE ONLY postgis."mrr:ut_diamant_beviljade" + ADD CONSTRAINT "mrr:ut_diamant_beviljade_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:mineral_applied mrr:mineral_applied_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud mrr:ut_diamant_forbud_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_applied" - ADD CONSTRAINT "mrr:mineral_applied_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_diamant_forbud" + ADD CONSTRAINT "mrr:ut_diamant_forbud_licenceid_key" UNIQUE (licenceid); -- --- Name: mrr:mineral_applied mrr:mineral_applied_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud mrr:ut_diamant_forbud_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_applied" - ADD CONSTRAINT "mrr:mineral_applied_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_diamant_forbud" + ADD CONSTRAINT "mrr:ut_diamant_forbud_name_key" UNIQUE (name); -- --- Name: mrr:mineral_approved mrr:mineral_approved_DiaryNr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud mrr:ut_diamant_forbud_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_approved" - ADD CONSTRAINT "mrr:mineral_approved_DiaryNr_key" UNIQUE ("DiaryNr"); +ALTER TABLE ONLY postgis."mrr:ut_diamant_forbud" + ADD CONSTRAINT "mrr:ut_diamant_forbud_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:mineral_approved mrr:mineral_approved_LicenceID_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_ansokta mrr:ut_metaller_industrimineral_ansokta_diarynr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_approved" - ADD CONSTRAINT "mrr:mineral_approved_LicenceID_key" UNIQUE ("LicenceID"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_ansokta" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_ansokta_diarynr_key" UNIQUE (diarynr); -- --- Name: mrr:mineral_approved mrr:mineral_approved_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_ansokta mrr:ut_metaller_industrimineral_ansokta_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_approved" - ADD CONSTRAINT "mrr:mineral_approved_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_ansokta" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_ansokta_name_key" UNIQUE (name); -- --- Name: mrr:mineral_approved mrr:mineral_approved_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_ansokta mrr:ut_metaller_industrimineral_ansokta_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:mineral_approved" - ADD CONSTRAINT "mrr:mineral_approved_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_ansokta" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_ansokta_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:olja_gas_diamant_applied mrr:olja_gas_diamant_applied_DiaryNr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_beviljade mrr:ut_metaller_industrimineral_beviljade_diarynr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_applied" - ADD CONSTRAINT "mrr:olja_gas_diamant_applied_DiaryNr_key" UNIQUE ("DiaryNr"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_beviljade" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_beviljade_diarynr_key" UNIQUE (diarynr); -- --- Name: mrr:olja_gas_diamant_applied mrr:olja_gas_diamant_applied_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_beviljade mrr:ut_metaller_industrimineral_beviljade_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_applied" - ADD CONSTRAINT "mrr:olja_gas_diamant_applied_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_beviljade" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_beviljade_licenceid_key" UNIQUE (licenceid); -- --- Name: mrr:olja_gas_diamant_applied mrr:olja_gas_diamant_applied_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_beviljade mrr:ut_metaller_industrimineral_beviljade_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_applied" - ADD CONSTRAINT "mrr:olja_gas_diamant_applied_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_beviljade" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_beviljade_name_key" UNIQUE (name); -- --- Name: mrr:olja_gas_diamant_approved mrr:olja_gas_diamant_approved_DiaryNr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_beviljade mrr:ut_metaller_industrimineral_beviljade_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_approved" - ADD CONSTRAINT "mrr:olja_gas_diamant_approved_DiaryNr_key" UNIQUE ("DiaryNr"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_beviljade" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_beviljade_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:olja_gas_diamant_approved mrr:olja_gas_diamant_approved_LicenceID_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_forbud mrr:ut_metaller_industrimineral_forbud_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_approved" - ADD CONSTRAINT "mrr:olja_gas_diamant_approved_LicenceID_key" UNIQUE ("LicenceID"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forbud" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_forbud_licenceid_key" UNIQUE (licenceid); -- --- Name: mrr:olja_gas_diamant_approved mrr:olja_gas_diamant_approved_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_forbud mrr:ut_metaller_industrimineral_forbud_name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_approved" - ADD CONSTRAINT "mrr:olja_gas_diamant_approved_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forbud" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_forbud_name_key" UNIQUE (name); -- --- Name: mrr:olja_gas_diamant_approved mrr:olja_gas_diamant_approved_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_forbud mrr:ut_metaller_industrimineral_forbud_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:olja_gas_diamant_approved" - ADD CONSTRAINT "mrr:olja_gas_diamant_approved_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forbud" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_forbud_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:torvkoncessioner mrr:torvkoncessioner_DiaryNr_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_forfallna mrr:ut_metaller_industrimineral_forfallna_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:torvkoncessioner" - ADD CONSTRAINT "mrr:torvkoncessioner_DiaryNr_key" UNIQUE ("DiaryNr"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forfallna" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_forfallna_licenceid_key" UNIQUE (licenceid); -- --- Name: mrr:torvkoncessioner mrr:torvkoncessioner_Name_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_forfallna mrr:ut_metaller_industrimineral_forfallna_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:torvkoncessioner" - ADD CONSTRAINT "mrr:torvkoncessioner_Name_key" UNIQUE ("Name"); +ALTER TABLE ONLY postgis."mrr:ut_metaller_industrimineral_forfallna" + ADD CONSTRAINT "mrr:ut_metaller_industrimineral_forfallna_pkey" PRIMARY KEY (ogc_fid); -- --- Name: mrr:torvkoncessioner mrr:torvkoncessioner_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_olja_gas_diamant_forfallna mrr:ut_olja_gas_diamant_forfallna_licenceid_key; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import -- -ALTER TABLE ONLY postgis."mrr:torvkoncessioner" - ADD CONSTRAINT "mrr:torvkoncessioner_pkey" PRIMARY KEY (ogc_fid); +ALTER TABLE ONLY postgis."mrr:ut_olja_gas_diamant_forfallna" + ADD CONSTRAINT "mrr:ut_olja_gas_diamant_forfallna_licenceid_key" UNIQUE (licenceid); + + +-- +-- Name: mrr:ut_olja_gas_diamant_forfallna mrr:ut_olja_gas_diamant_forfallna_pkey; Type: CONSTRAINT; Schema: postgis; Owner: webmap_import +-- + +ALTER TABLE ONLY postgis."mrr:ut_olja_gas_diamant_forfallna" + ADD CONSTRAINT "mrr:ut_olja_gas_diamant_forfallna_pkey" PRIMARY KEY (ogc_fid); -- @@ -4086,59 +4488,94 @@ CREATE INDEX lansyta_wkb_geometry_geom_idx ON postgis.lansyta USING gist (wkb_ge -- --- Name: mrr:bearbetningskoncessioner_applied_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:bearbetningskoncessioner_ansokta_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- + +CREATE INDEX "mrr:bearbetningskoncessioner_ansokta_wkb_geometry_geom_idx" ON postgis."mrr:bearbetningskoncessioner_ansokta" USING gist (wkb_geometry); + + +-- +-- Name: mrr:bearbetningskoncessioner_beviljade_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- + +CREATE INDEX "mrr:bearbetningskoncessioner_beviljade_wkb_geometry_geom_idx" ON postgis."mrr:bearbetningskoncessioner_beviljade" USING gist (wkb_geometry); + + +-- +-- Name: mrr:bearbetningskoncessioner_forfallna_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- + +CREATE INDEX "mrr:bearbetningskoncessioner_forfallna_wkb_geometry_geom_idx" ON postgis."mrr:bearbetningskoncessioner_forfallna" USING gist (wkb_geometry); + + +-- +-- Name: mrr:markanvisningar_bk_ansokta_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:bearbetningskoncessioner_applied_wkb_geometry_geom_idx" ON postgis."mrr:bearbetningskoncessioner_applied" USING gist (wkb_geometry); +CREATE INDEX "mrr:markanvisningar_bk_ansokta_wkb_geometry_geom_idx" ON postgis."mrr:markanvisningar_bk_ansokta" USING gist (wkb_geometry); -- --- Name: mrr:bearbetningskoncessioner_approved_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:markanvisningar_bk_beviljade_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:bearbetningskoncessioner_approved_wkb_geometry_geom_idx" ON postgis."mrr:bearbetningskoncessioner_approved" USING gist (wkb_geometry); +CREATE INDEX "mrr:markanvisningar_bk_beviljade_wkb_geometry_geom_idx" ON postgis."mrr:markanvisningar_bk_beviljade" USING gist (wkb_geometry); -- --- Name: mrr:markanvisningar_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_ansokta_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:markanvisningar_wkb_geometry_geom_idx" ON postgis."mrr:markanvisningar" USING gist (wkb_geometry); +CREATE INDEX "mrr:ut_diamant_ansokta_wkb_geometry_geom_idx" ON postgis."mrr:ut_diamant_ansokta" USING gist (wkb_geometry); -- --- Name: mrr:mineral_applied_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_beviljade_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:mineral_applied_wkb_geometry_geom_idx" ON postgis."mrr:mineral_applied" USING gist (wkb_geometry); +CREATE INDEX "mrr:ut_diamant_beviljade_wkb_geometry_geom_idx" ON postgis."mrr:ut_diamant_beviljade" USING gist (wkb_geometry); -- --- Name: mrr:mineral_approved_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_diamant_forbud_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:mineral_approved_wkb_geometry_geom_idx" ON postgis."mrr:mineral_approved" USING gist (wkb_geometry); +CREATE INDEX "mrr:ut_diamant_forbud_wkb_geometry_geom_idx" ON postgis."mrr:ut_diamant_forbud" USING gist (wkb_geometry); -- --- Name: mrr:olja_gas_diamant_applied_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_ansokta_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:olja_gas_diamant_applied_wkb_geometry_geom_idx" ON postgis."mrr:olja_gas_diamant_applied" USING gist (wkb_geometry); +CREATE INDEX "mrr:ut_metaller_industrimineral_ansokta_wkb_geometry_geom_idx" ON postgis."mrr:ut_metaller_industrimineral_ansokta" USING gist (wkb_geometry); -- --- Name: mrr:olja_gas_diamant_approved_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_beviljade_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:olja_gas_diamant_approved_wkb_geometry_geom_idx" ON postgis."mrr:olja_gas_diamant_approved" USING gist (wkb_geometry); +CREATE INDEX "mrr:ut_metaller_industrimineral_beviljade_wkb_geometry_geom_idx" ON postgis."mrr:ut_metaller_industrimineral_beviljade" USING gist (wkb_geometry); -- --- Name: mrr:torvkoncessioner_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- Name: mrr:ut_metaller_industrimineral_forbud_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import -- -CREATE INDEX "mrr:torvkoncessioner_wkb_geometry_geom_idx" ON postgis."mrr:torvkoncessioner" USING gist (wkb_geometry); +CREATE INDEX "mrr:ut_metaller_industrimineral_forbud_wkb_geometry_geom_idx" ON postgis."mrr:ut_metaller_industrimineral_forbud" USING gist (wkb_geometry); + + +-- +-- Name: mrr:ut_metaller_industrimineral_forfallna_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- + +CREATE INDEX "mrr:ut_metaller_industrimineral_forfallna_wkb_geometry_geom_idx" ON postgis."mrr:ut_metaller_industrimineral_forfallna" USING gist (wkb_geometry); + + +-- +-- Name: mrr:ut_olja_gas_diamant_forfallna_wkb_geometry_geom_idx; Type: INDEX; Schema: postgis; Owner: webmap_import +-- + +CREATE INDEX "mrr:ut_olja_gas_diamant_forfallna_wkb_geometry_geom_idx" ON postgis."mrr:ut_olja_gas_diamant_forfallna" USING gist (wkb_geometry); -- @@ -4515,115 +4952,185 @@ GRANT SELECT,USAGE ON SEQUENCE postgis.lansyta_ogc_fid_seq TO webmap_guest; -- --- Name: TABLE "mrr:bearbetningskoncessioner_applied"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:bearbetningskoncessioner_ansokta"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT ON TABLE postgis."mrr:bearbetningskoncessioner_ansokta" TO webmap_guest; + + +-- +-- Name: SEQUENCE "mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:bearbetningskoncessioner_ansokta_ogc_fid_seq" TO webmap_guest; + + +-- +-- Name: TABLE "mrr:bearbetningskoncessioner_beviljade"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT ON TABLE postgis."mrr:bearbetningskoncessioner_beviljade" TO webmap_guest; + + +-- +-- Name: SEQUENCE "mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:bearbetningskoncessioner_beviljade_ogc_fid_seq" TO webmap_guest; + + +-- +-- Name: TABLE "mrr:bearbetningskoncessioner_forfallna"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT ON TABLE postgis."mrr:bearbetningskoncessioner_forfallna" TO webmap_guest; + + +-- +-- Name: SEQUENCE "mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:bearbetningskoncessioner_forfallna_ogc_fid_seq" TO webmap_guest; + + +-- +-- Name: TABLE "mrr:markanvisningar_bk_ansokta"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT ON TABLE postgis."mrr:markanvisningar_bk_ansokta" TO webmap_guest; + + +-- +-- Name: SEQUENCE "mrr:markanvisningar_bk_ansokta_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:markanvisningar_bk_ansokta_ogc_fid_seq" TO webmap_guest; + + +-- +-- Name: TABLE "mrr:markanvisningar_bk_beviljade"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT ON TABLE postgis."mrr:markanvisningar_bk_beviljade" TO webmap_guest; + + +-- +-- Name: SEQUENCE "mrr:markanvisningar_bk_beviljade_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- + +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:markanvisningar_bk_beviljade_ogc_fid_seq" TO webmap_guest; + + +-- +-- Name: TABLE "mrr:ut_diamant_ansokta"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:bearbetningskoncessioner_applied" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_diamant_ansokta" TO webmap_guest; -- --- Name: SEQUENCE "mrr:bearbetningskoncessioner_applied_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_diamant_ansokta_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:bearbetningskoncessioner_applied_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_diamant_ansokta_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:bearbetningskoncessioner_approved"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_diamant_beviljade"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:bearbetningskoncessioner_approved" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_diamant_beviljade" TO webmap_guest; -- --- Name: SEQUENCE "mrr:bearbetningskoncessioner_approved_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_diamant_beviljade_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:bearbetningskoncessioner_approved_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_diamant_beviljade_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:markanvisningar"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_diamant_forbud"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:markanvisningar" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_diamant_forbud" TO webmap_guest; -- --- Name: SEQUENCE "mrr:markanvisningar_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_diamant_forbud_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:markanvisningar_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_diamant_forbud_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:mineral_applied"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_metaller_industrimineral_ansokta"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:mineral_applied" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_metaller_industrimineral_ansokta" TO webmap_guest; -- --- Name: SEQUENCE "mrr:mineral_applied_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:mineral_applied_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_metaller_industrimineral_ansokta_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:mineral_approved"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_metaller_industrimineral_beviljade"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:mineral_approved" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_metaller_industrimineral_beviljade" TO webmap_guest; -- --- Name: SEQUENCE "mrr:mineral_approved_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:mineral_approved_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_metaller_industrimineral_beviljade_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:olja_gas_diamant_applied"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_metaller_industrimineral_forbud"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:olja_gas_diamant_applied" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_metaller_industrimineral_forbud" TO webmap_guest; -- --- Name: SEQUENCE "mrr:olja_gas_diamant_applied_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:olja_gas_diamant_applied_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_metaller_industrimineral_forbud_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:olja_gas_diamant_approved"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_metaller_industrimineral_forfallna"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:olja_gas_diamant_approved" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_metaller_industrimineral_forfallna" TO webmap_guest; -- --- Name: SEQUENCE "mrr:olja_gas_diamant_approved_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:olja_gas_diamant_approved_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_metaller_industrimineral_forfallna_ogc_fid_seq" TO webmap_guest; -- --- Name: TABLE "mrr:torvkoncessioner"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: TABLE "mrr:ut_olja_gas_diamant_forfallna"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT ON TABLE postgis."mrr:torvkoncessioner" TO webmap_guest; +GRANT SELECT ON TABLE postgis."mrr:ut_olja_gas_diamant_forfallna" TO webmap_guest; -- --- Name: SEQUENCE "mrr:torvkoncessioner_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import +-- Name: SEQUENCE "mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq"; Type: ACL; Schema: postgis; Owner: webmap_import -- -GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:torvkoncessioner_ogc_fid_seq" TO webmap_guest; +GRANT SELECT,USAGE ON SEQUENCE postgis."mrr:ut_olja_gas_diamant_forfallna_ogc_fid_seq" TO webmap_guest; -- diff --git a/webmap-download-mrr.py b/webmap-download-mrr.py deleted file mode 100644 index 696e46c..0000000 --- a/webmap-download-mrr.py +++ /dev/null @@ -1,673 +0,0 @@ -#---------------------------------------------------------------------- -# Backend utilities for the Klimatanalys Norr project (download MRR layers) -# Copyright © 2024 Guilhem Moulin <info@guilhem.se> -# -# This program is free software: you can redistribute it and/or modify -# it under the terms of the GNU General Public License as published by -# the Free Software Foundation, either version 3 of the License, or -# (at your option) any later version. -# -# This program is distributed in the hope that it will be useful, -# but WITHOUT ANY WARRANTY; without even the implied warranty of -# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -# GNU General Public License for more details. -# -# You should have received a copy of the GNU General Public License -# along with this program. If not, see <https://www.gnu.org/licenses/>. -#---------------------------------------------------------------------- - -# Unfortunately SGU/Bergsstaten doesn't offer MRR layer files to -# download, cf. -# -# https://www.sgu.se/produkter-och-tjanster/geologiska-data/vara-data-per-amnesomrade/berggrundsgeologiska-data/mineralrattigheter/ -# -# but it has an online webmap (WMS) at -# -# https://apps.sgu.se/kartvisare/kartvisare-mineralrattigheter.html -# -# so we add a dedicated module to probe and fetch features from it. - -from os import O_RDONLY, O_WRONLY, O_RDWR, O_CREAT, O_CLOEXEC, O_TMPFILE -import os -from pathlib import Path -from time import time, sleep, monotonic as time_monotonic -import re -import logging -import requests -import itertools -import random -import json -from math import sqrt -from hashlib import sha256 -from lxml import etree - -from osgeo import gdal, ogr -gdal.UseExceptions() - -import common - -LAST_UPDATED = 'Last updated' -class WMS: - def __init__(self, headers={}, session=requests, url=None, version='1.1.1'): - self.req_count = 0 - self.headers = headers - self.session = session - self.url = url - self.version = version - - def __del__(self): - self.print_req_count() - - def print_req_count(self, elapsed=None): - if self.req_count is None or self.url is None: - return - elif elapsed is None: - logging.info('%d WMS requests sent to %s', self.req_count, self.url) - else: - logging.info('%d WMS requests (%.2f\u202Freq/s) sent to %s', self.req_count, - self.req_count/elapsed, self.url) - - # Send a request to the WMS server - def req(self, request, content_type=None, params={}, max_tries=10, timeout=10): - params2 = { - 'SERVICE': 'WMS', - 'VERSION': self.version, - 'REQUEST': request, - } | params - for i in itertools.count(1): - try: - r = self.session.get(self.url, - headers = self.headers, - params = params2, - timeout = timeout, - ) - except (requests.Timeout, requests.ConnectionError) as e: - if i < max_tries: - logging.error('Timeout') - continue - raise e - self.req_count += 1 - if i < max_tries and r.status_code in [requests.codes.bad_gateway, requests.codes.gateway_timeout]: - logging.error(r.status_code) - sleep(30) - continue - r.raise_for_status() - if content_type is not None: - content_type2 = r.headers.get('Content-Type') - content_type2 = content_type2.split(';')[0] if content_type2 is not None else None - if content_type2 is None or content_type2 != content_type: - raise Exception(f'Content-Type mismatch: expected {content_type}, got {content_type2}') - return r - - # Return metadata for the given feature - def getFeatureInfo(self, x, y, layer, res=.25): - content_type = 'application/json' - width = height = 101 # value from https://apps.sgu.se/kartvisare/kartvisare-mineralrattigheter.html - half_width = res * width/2 - half_height = res * height/2 - x1 = x - half_width - x2 = x + half_width - y1 = y - half_height - y2 = y + half_height - bbox = [x1, y1, x2, y2] - - max_count = 300 - r = self.req('GetFeatureInfo', content_type=content_type, params={ - 'LAYERS': layer, - 'FORMAT': 'image/png', - 'TRANSPARENT': 'true', - 'TILED': 'false', - 'WIDTH': width, - 'HEIGHT': height, - 'QUERY_LAYERS': layer, - 'INFO_FORMAT': content_type, - 'FEATURE_COUNT': max_count, - 'X': 50, - 'Y': 50, - 'BBOX': ','.join(map(str, bbox)), - 'SRS': common.config['SRS'], - }) - data = r.json() - if data.get('type', '') != 'FeatureCollection': - raise Exception(f'Did not return a feature collection') - if data.get('features', None) is None: - raise Exception(f'Missing features list') - if len(data.get('features')) >= max_count: - logging.warning('Returned max number of features (%d), possibly missing some!', max_count) - return data - - # Refine a geometry at the given resolution. - # Return the iteration count at which the feature was found (or None if it was not found) along - # with a dictionary `fingerprint:feature` found along the way. - def refineGeometry(self, layername, fpr, feature, res=1, crs=None, max_tries=1024, features={}): - geojson = json.dumps(feature.get('geometry')) - geom = ogr.CreateGeometryFromJson(geojson) - if geom is None: - raise Exception(f'Invalid GeoJSON geometry') - triangulation = triangulate(geom.MakeValid()) - i = 0 - while fpr not in features and i < max_tries: - x, y = getRandomPoint(triangulation) - data = self.getFeatureInfo(x, y, layername, res=res) - crs2 = data.get('crs', None) - features2 = data['features'] - if ((crs is None and crs2 is not None) or (crs is not None and crs2 is None) - or (crs is not None and crs2 is not None and crs != crs2)): - if len(features2) > 0: - # the server should never return different CRSs - raise Exception(f'{json.dumps(crs)} != {json.dumps(crs2)}') - for feature2 in features2: - fpr2, feature2 = mkFeature(feature2, layername) - features[fpr2] = feature2 - i += 1 - if fpr not in features: - return None, features - return i, features - - # Refine geometries at the given resolution, modifying features in place - def refineGeometries(self, features, layername, res=1, crs=None, max_tries=1024, progress=None): - feature_count = len(features) - features2 = {} - pbar = None - stats = {} - try: - if progress is not None: - pbar = progress(total=feature_count, leave=False, unit='') - for fpr, feature in features.items(): - i, _ = self.refineGeometry(layername, fpr, feature, - res=res, crs=crs, max_tries=max_tries, features=features2) - if i is None: - i = '-' - stats[i] = stats.get(i, 0) + 1 - if pbar is not None: - pbar.update(1) - finally: - if pbar is not None: - pbar.close() - - features.update(features2) - - # show refinement stats - if stats.get(0, 0) + stats.get(1, 0) == feature_count: - details = 'all on first attempt' - else: - details = [] - for ks, vs in sorted(stats.items(), key=lambda item: max_count+1 if item[0] == '-' else item[0]): - if ks == '-': - msg = f'{vs}× FAILED' - elif len(details) > 0: - msg = f'{vs}× {ks}' - elif ks == 1: - msg = f'{vs}× after 1 attempt' - else: - msg = f'{vs}× after {ks} attempts' - details.append(msg) - details = ', '.join(details) - w = 'geometry' if feature_count == 1 else 'geometries' - logging.info('Refined %d %s at resolution %s (%s)', feature_count, w, str(res), details) - - # Guess whether the cached layer at path is up to date - def is_uptodate(self, layername, path, dir_fd=None, - oldsvg_fp=None, newsvg='', - max_age=864000): - try: - fd = os.open(path, O_RDONLY, dir_fd=dir_fd) - except (OSError, ValueError): - # couldn't open cached file - logging.debug('%s is stale: open() failed', path) - return False - - try: - try: - st = os.fstat(fd) - svg_st = os.fstat(oldsvg_fp.fileno()) - except (OSError, ValueError): - logging.debug('%s is stale: fstat() failed', path) - return False - - if st.st_mtime < svg_st.st_mtime: - # writing SVG is racy so always assume that a younger SVG - # means a stale GeoJSON - logging.debug('%s is stale: SVG is younger (%f < %f)', path, - st.st_mtime, svg_st.st_mtime) - return False - - try: - oldsvg = oldsvg_fp.read() - finally: - # seek back to the begining (we then truncate and write the SVG) - oldsvg_fp.seek(0) - if newsvg is None or oldsvg != newsvg: - logging.debug('%s is stale: SVG differs', path) - return False - - if max_age is not None: - current_time = time() - mtime = max(st.st_ctime, st.st_mtime) - if max_age + mtime < current_time: - # always consider files older than max_age as stale - logging.debug('%s is stale: too old (%f + %f < %f)', path, - max_age, mtime, current_time) - return False - - with os.fdopen(fd, mode='rb', closefd=False) as fp: - try: - # load cached geojson - data = json.load(fp) - except json.JSONDecodeError: - logging.warning('%s is stale: not a valid JSON file', path) - return False - finally: - os.close(fd) - - # more checks on the GeoJSON content - if (not isinstance(data, dict) or 'type' not in data or data['type'] != 'FeatureCollection' - or 'features' not in data or not isinstance(data['features'], list)): - logging.warning('%s: not a valid GeoJSON file', path) - return False - - crs = data.get('crs', None) - data = data['features'] - if len(data) == 0: - # always assume empty cached files are stale - logging.debug('%s is stale: has no features', path) - return False - - data = random.choice(data) # random features - if (not isinstance(data, dict) or 'type' not in data or data['type'] != 'Feature' - or 'geometry' not in data or not isinstance(data['geometry'], dict)): - logging.warning('%s: not a valid GeoJSON file', path) - return False - - last_updated = data['properties'].get(LAST_UPDATED, None) - if last_updated is None or last_updated == '': - logging.debug('%s is stale: %s has no "%s" value', path, - json.dumps(data), LAST_UPDATED) - return False - - # check whether the randomly chosen feature is still there and that - # its "Last updated" value has not changed - # (this check comes last as it is potentially expensive) - fpr, data = mkFeature(data, layername) - found, features = self.refineGeometry(layername, fpr, data, res=.25, crs=crs, max_tries=10) - if not found: - logging.debug('%s is stale: could not find feature %s', path, json.dumps(data)) - return False - - last_updated2 = features[fpr]['properties'].get(LAST_UPDATED, None) - if last_updated2 is None or last_updated != last_updated2: - logging.debug('%s is stale: "%s" values differ (%s != %s)', - path, LAST_UPDATED, last_updated, last_updated2) - return False - - # assume the cached file is up to date - logging.debug('is_uptodate(%s, %s, …) == True', layername, path) - return True - - def getFeatures(self, layername, path_strings, gt, progress=None): - crs = None - max_probe_count = 3 - probes = [] - for d in path_strings: - d0 = d - m = POINT0_RE.match(d) - if m is None: - raise Exception(f"Can't parse <path>'s \"d\" attribute value: \"{d0}\"") - d = d.removeprefix(m.group()) - x = float(m.group(1)) - y = float(m.group(2)) - path = [ [x, y] ] - - # get first part of the path (until the pen is moved) - while True: - m = POINT_RE.match(d) - if m is None: - break - d = d.removeprefix(m.group()) - x = float(m.group(1)) - y = float(m.group(2)) - if path[-1] != [x, y]: - path.append([x, y]) - if d.startswith('Z') and len(path) > 0: - if path[0] != path[-1]: - path.append(path[0]) - d = d.removeprefix("Z") - logging.debug('d="%s" -> path=%s, rest="%s"', d0, path, d) - - # convert to an outer ring - ring0 = ogr.Geometry(ogr.wkbLinearRing) - for px, py in path: - x, y = gdal.ApplyGeoTransform(gt, px, py) - ring0.AddPoint_2D(x, y) - - poly0 = ogr.Geometry(ogr.wkbPolygon) - poly0.AddGeometry(ring0) - - # randomly probe once per 10km² (1000ha), but not more than max_probe_count - probe_count = poly0.GetArea() / 1e7 - if probe_count < 1: - probe_count = 1 - elif probe_count > max_probe_count: - probe_count = max_probe_count - else: - probe_count = round(probe_count) - - probes.append( (poly0.MakeValid(), probe_count) ) - - if len(probes) == 0: - self.req_count = None # don't print request count - return {}, crs - - features = {} - probe_count_sum = sum([n for _, n in probes]) - pbar = None - try: - if progress is not None: - pbar = progress(total=probe_count_sum, leave=False, unit='') - for geom, probe_count in probes: - triangulation = triangulate(geom) - - # always try the centroid first (later fallback to a random - # point if the centroid is not in geom) - x, y = nearCentroidWithin(geom) - - # crude probing and add feature(s) found along the way - for i in range(probe_count): - if i > 0 or x is None or y is None: - x, y = getRandomPoint(triangulation) - - data = self.getFeatureInfo(x, y, layername, res=1024) - crs2 = data.get('crs', None) - data = data['features'] - if crs2 is not None: - if crs is None: - crs = crs2 - elif crs != crs2 and len(data) > 0: - # the server should never return different CRSs - raise Exception(f'{json.dumps(crs)} != {json.dumps(crs2)}') - - for feature in data: - fpr, feature = mkFeature(feature, layername) - features[fpr] = feature - data = None - - if pbar is not None: - pbar.update(1) - geom = None - finally: - del probes[:] - if pbar is not None: - pbar.close() - - logging.info('Found %d unique feature(s) after crude probing', len(features)) - return features, crs - -# Triangulate the input geometry -def triangulate(geom): - geomType = geom.GetGeometryType() - if geomType == ogr.wkbPolygon or geomType == ogr.wkbMultiPolygon or geomType == ogr.wkbGeometryCollection: - if geom.Area() < 1e-9: - # degenerate polygon - return geom.Boundary() - elif geomType == ogr.wkbLineString or geomType == ogr.wkbMultiLineString: - return geom - elif geomType == ogr.wkbPoint or geomType == ogr.wkbMultiPoint: - return geom - else: - raise Exception(f'Invalid geometry type: {geom}') - - triangulation = geom.DelaunayTriangulation(dfTolerance=0., bOnlyEdges=False) - triangulation2 = ogr.Geometry(ogr.wkbGeometryCollection) - for i in range(triangulation.GetGeometryCount()): - triangle = triangulation.GetGeometryRef(i) - if geom.Contains(triangle): - triangulation2.AddGeometry(triangle) - if triangulation2.IsEmpty(): - # can happen in some degenerate cases - return triangulation - else: - return triangulation2 - -# Return the centroid (modulo rounding) if is within the input geometry, -# and None, None otherwise -def nearCentroidWithin(geom, decimals=2): - centroid = geom.Centroid() - if centroid.GetGeometryType() != ogr.wkbPoint: - raise Exception(f'{centroid} is not a point') - x, y = centroid.GetPoint_2D(0) - if decimals is not None: - x = round(x, decimals) - y = round(y, decimals) - pt = ogr.Geometry(ogr.wkbPoint) - pt.AddPoint_2D(x, y) - if pt.Within(geom): - return x, y - else: - return None, None - -# Get a random point within the given geometry -# The geometry needs to be triangulated first for speed, see -# see https://dev.to/bogdanalexandru/generating-random-points-within-a-polygon-in-unity-nce -def getRandomPoint(triangulation, decimals=2, max_tries=1024): - # special cases if source is a degenerate polygon - geomType = triangulation.GetGeometryType() - if geomType == ogr.wkbMultiPoint: - if triangulation.GetGeometryCount() == 0: - raise Exception(f'Empty {triangulation}') - i = random.randrange(0, triangulation.GetGeometryCount()) - pt = triangulation.GetGeometryRef(i) - return pt.GetX(), pt.GetY() - elif geomType == ogr.wkbLineString: - i = random.uniform(0, triangulation.Length()) - pt = triangulation.Value(i) - return pt.GetX(), pt.GetY() - elif geomType == ogr.wkbMultiLineString: - lengths = [] - for i in range(triangulation.GetGeometryCount()): - line = triangulation.GetGeometryRef(i) - lengths.append(line.Length()) - k = random.choices(range(triangulation.GetGeometryCount()), weights=lengths, k=1)[0] - line = triangulation.GetGeometryRef(k) - i = random.uniform(0, line.Length()) - pt = line.Value(i) - return pt.GetX(), pt.GetY() - elif geomType != ogr.wkbGeometryCollection: - raise Exception(f'Not a GeometryCollection {triangulation}') - - areas = [] - for i in range(triangulation.GetGeometryCount()): - triangle = triangulation.GetGeometryRef(i) - areas.append(triangle.GetArea()) - - for i in range(max_tries): - # pick a random triangle (weighted by area) - k = random.choices(range(triangulation.GetGeometryCount()), weights=areas, k=1)[0] - triangle = triangulation.GetGeometryRef(k) - - ring = triangle.GetGeometryRef(0) - if triangle.GetGeometryType() != ogr.wkbPolygon or triangle.GetGeometryCount() != 1 or ring.GetPointCount() != 4: - raise Exception('Not a triangle') - - x0, y0 = ring.GetPoint_2D(0) - x1, y1 = ring.GetPoint_2D(1) - x2, y2 = ring.GetPoint_2D(2) - - # pick a random point inside that triangle - r1 = random.uniform(0, 1) - r2 = random.uniform(0, 1) - sqrt_r1 = sqrt(r1) - sqrt_r2 = sqrt(r2) - - x = (1 - sqrt_r1) * x0 + sqrt_r1 * (1 - r2) * x1 + sqrt_r1 * r2 * x2 - y = (1 - sqrt_r1) * y0 + sqrt_r1 * (1 - r2) * y1 + sqrt_r1 * r2 * y2 - if decimals is not None: - x = round(x, decimals) - y = round(y, decimals) - pt = ogr.Geometry(ogr.wkbPoint) - pt.AddPoint_2D(x, y) - if pt.Within(triangulation): - return x, y - # might need to retry due to rounding - raise Exception(f"Couldn't find point within geometry pt={pt} triangle={triangle} k={k} triangulation={triangulation}") - -# Return a feature along with its "signature" -def mkFeature(feature, layername): - properties = feature.get('properties', None) - if properties is None: - raise Exception(f'Feature lacks "properties" attributes') - fid = feature.pop('id', None) - if fid is not None and layername is not None and not fid.startswith(layername.removeprefix('MRR:')): - raise Exception(f'Unexpected ID {fid} for layer {layername}') - - properties2 = properties.copy() - properties2.pop(LAST_UPDATED, None) # always ignore "Last updated" values - properties2 = json.dumps(properties2, ensure_ascii=False, sort_keys=True, separators=(',', ':')) - fpr = sha256(properties2.encode('utf-8') + b'\x00' + layername.encode('utf-8')) - return fpr.hexdigest(), { - # RFC 7946 sec. 3.2 - 'type': 'Feature', - 'geometry': feature.get('geometry'), - 'properties': properties, - } - -FLOAT_RE = r'(?:[0-9]+(?:\.[0-9]*)?|\.[0-9]+)' -PATH_RE = re.compile(r'^M\s*' + - FLOAT_RE + r'\s+' + FLOAT_RE + r'\s+' + - r'(?:L\s*' + FLOAT_RE + r'\s+' + FLOAT_RE + r'\s+)+' + - r'(?:[ZM]|$)') -POINT0_RE = re.compile(r'^M\s*(' + FLOAT_RE + r')\s+(' + FLOAT_RE + r')\s+') -POINT_RE = re.compile(r'^L\s*(' + FLOAT_RE + r')\s+(' + FLOAT_RE + r')(?:\s+|$)') - -def download(dest, dl, dir_fd=None, headers={}, session=requests, progress=None): - dest_path = Path(dest) - if dest_path.suffix.lower() != '.geojson': - # mostly to check that nothing ends in .svg - raise Exception(f'{dest} must end with .geojson') - dest_tmp = str(dest_path.with_stem(f'.{dest_path.stem}.new')) - try: - # delete any leftover - os.unlink(dest_tmp, dir_fd=dir_fd) - except FileNotFoundError: - pass - - layername = dl['layername'] - logging.info(f'Processing layer %s…', layername) - headers.pop('If-Modified-Since', None) # never send If-Modified-Since headers - - start = time_monotonic() - wms = WMS( - url='https://maps3.sgu.se/geoserver/wms', - version='1.1.1', - headers=headers, - session=session, - ) - - # download the SVG from the WMS server and try to parse it to list - # all features; an alternative would be to download a PNG and probe - # every single non-transparent pixel, but it's very slow (and not - # kind to the WMS server) due to the sheer amount of such pixels - bbox = common.config['extent'] - res = 256 - image_format = 'image/svg+xml' - r = wms.req('GetMap', content_type=image_format, params={ - 'LAYERS': layername, - 'FORMAT': image_format, - 'TRANSPARENT': 'true', - 'TILED': 'false', - 'WIDTH': f'{(bbox[2]-bbox[0])/res:.0f}', - 'HEIGHT': f'{(bbox[3]-bbox[1])/res:.0f}', - 'BBOX': ','.join(map(str, bbox)), - 'SRS': common.config['SRS'], - }) - - svg_path = str(dest_path.with_suffix('.svg')) - svg_fd = os.open(svg_path, O_RDWR|O_CREAT|O_CLOEXEC, mode=0o644, dir_fd=dir_fd) - try: - with os.fdopen(svg_fd, mode='wb+', closefd=False) as fp: - if wms.is_uptodate(layername, dest, dir_fd=dir_fd, - oldsvg_fp=fp, newsvg=r.content): - logging.info('%s appears to be up to date, skipping', dest) - wms.req_count = None # don't print request count - return - - # not atomic, but not a big deal (only used for comparison and mismatch - # causes the layer to be downloaded again); it's not possible to write - # the .geojson and the .svg in the same transaction anyway - fp.truncate() - fp.write(r.content) - finally: - os.close(svg_fd) - - # https://gdal.org/tutorials/geotransforms_tut.html - gt = [bbox[0], res, 0, bbox[3], 0, -res] - - ns = 'http://www.w3.org/2000/svg' - tree = etree.XML(r.content) - - # parse SVG paths (approximation): - # https://developer.mozilla.org/en-US/docs/Web/SVG/Tutorial/Paths#line_commands - path_strings = set() - for elem in tree.iterfind(f'.//{{{ns}}}path'): - if elem.getparent().tag == f'{{{ns}}}clipPath': - continue - d = elem.attrib.get('d') - if d is None: - logging.error('<path> element has no "d" attribute') - continue - m = PATH_RE.match(d) - if m is None: - logging.error("Can't parse <path>'s \"d\" attribute value: \"%s\"", d) - continue - path_strings.add(d) - logging.info('Found %d unique SVG path(s)', len(path_strings)) - - features, crs = wms.getFeatures(layername, path_strings, gt, progress=progress) - - # refine geometries - if len(features) > 0: - #resolutions = [128, 16, 2, .25] - resolutions = [16, .25] - for res in resolutions: - wms.refineGeometries(features, layername, crs=crs, res=res, progress=progress) - logging.info('Found %d unique feature(s) after refinement', len(features)) - - features = { - 'type': 'FeatureCollection', - 'name': layername, - 'crs': crs, - 'features': list(features.values()), - } - - # write the destination GeoJSON file - fd = os.open(os.path.dirname(dest), O_WRONLY|O_CLOEXEC|O_TMPFILE, mode=0o644, dir_fd=dir_fd) - try: - with os.fdopen(fd, mode='w', closefd=False) as fp: - json.dump(features, fp, ensure_ascii=False, separators=(',', ':')) - st = os.fstat(fd) - size = st.st_size - feature_count = len(features['features']) - - # XXX unfortunately there is no way for linkat() to clobber the destination, - # so we use a temporary file; it's racy, but thanks to O_TMPFILE better - # (shorter race) than if we were dumping chunks in a named file descriptor - os.link(f'/proc/self/fd/{fd}', dest_tmp, dst_dir_fd=dir_fd, follow_symlinks=True) - finally: - os.close(fd) - - try: - # atomic rename (ensures output is never partially written) - os.rename(dest_tmp, dest, src_dir_fd=dir_fd, dst_dir_fd=dir_fd) - except (OSError, ValueError) as e: - try: - os.unlink(dest_tmp, dir_fd=dir_fd) - finally: - raise e - - elapsed = time_monotonic() - start - wms.print_req_count(elapsed=elapsed) - wms.req_count = None - logging.info('%s: Fetched %d features (%s) in %s (%.2f\u202Ffeat/s, %s/s)', dest, - feature_count, common.format_bytes(size), - common.format_time(elapsed), - feature_count/elapsed, - common.format_bytes(int(size/elapsed))) |