Gegroet iedereen,
Ik ben bezig met het ontwikkelen van een applicatie waarbij het een en ander aan voorwerk moet worden verricht. De aard van de applicatie is voor deze vraag van ondergeschikt belang, het belangrijke is om te weten dat ik wat gegevens nodig heb die ik op zijn tijd in een database kan plempen.
Ik heb een GRIB file van het KNMI (https://data.knmi.nl/datasets/harmonie_p1/0.2?q=harmonie) met daar in weergegevens. Ook heb ik een shape-file (SHP) met daarin enkele gebieden met bijhorende data.
Deze shapefile leg ik met een GIS systeem (QGIS) over de GRIB file. Wat ik nu echter wil weten is het volgende:
Het tweede vraagstuk blijkt echter lastiger. Mijn idee is om het aantal pixels van zo'n GRIB-vakje vast te stellen, om vervolgens te kijken voor hoeveel pixels een gebied van de shapefile in dat vakje ligt. Het lukt me echter niet.
Wat heb ik al gedaan?
Ik denk zelf dat we nu de intersection moeten bepalen tussen de 2 files, waarvoor het programma (QGIS) ook een optie heeft. Ook zullen de bestanden wellicht gejoind moeten worden. Ik heb al verschillende dingen geprobeerd, echter werkten geen van allen. Ik heb het gevoel dat ik wat mis of wat verkeerd doe in mijn proces.
Bijzonder om te weten
De bestanden die door het KNMI worden verstrekt beweren GRIB (GRIB1 om precies te zijn) bestanden te zijn, echter ondersteunen de meeste programma's de bestanden van het KNMI niet. Andere GRIB1 bestanden worden wel geaccepteerd. Ik heb via het zeilersforum een python script gevonden die het naar een reguliere GRIB1 kan converteren (https://zeilersforum.nl/i...s-nu-beschikbaar?start=25) en ik heb ook een site gevonden die deze bestanden geconverteerd en al aanbied (http://www.euroszeilen.utwente.nl/weer/grib/). Deze bestanden worden wel ingeladen.
Ook treed er een complicatie op wanneer we de (geconverteerde) GRIB file inladen en vertalen naar een polygoon. Wat je zou verwachten is een raster met gelijke vakjes. Wat we krijgen is een raster met grotendeels gelijke vakjes, maar ook met vakjes die lijken op 3 vakjes horizontaal aan elkaar (welke dus ook 1 ID hebben). Of zelfs hele clusters aan elkaar zittende vakjes met 1 ID. Zie het screenshot.
BOTTOM LINE
Kan iemand mij een duwtje in de goede richting geven? Ik ben een leek op het gebied van GIS. Van nature ben ik een software engineer. Ik ben niet gebonden tot QGIS, andere oplossingen of tips zijn ook welkom. Als het met een andere tool kan, of met een simpel scriptje (ik prefereer .NET) ben ik helemaal happy.
In ieder geval, bedankt voor het lezen, en wellicht bedankt voor de suggesties!
Groetjes,
groeien
Ik ben bezig met het ontwikkelen van een applicatie waarbij het een en ander aan voorwerk moet worden verricht. De aard van de applicatie is voor deze vraag van ondergeschikt belang, het belangrijke is om te weten dat ik wat gegevens nodig heb die ik op zijn tijd in een database kan plempen.
Ik heb een GRIB file van het KNMI (https://data.knmi.nl/datasets/harmonie_p1/0.2?q=harmonie) met daar in weergegevens. Ook heb ik een shape-file (SHP) met daarin enkele gebieden met bijhorende data.
Deze shapefile leg ik met een GIS systeem (QGIS) over de GRIB file. Wat ik nu echter wil weten is het volgende:
- In welke vakjes uit de GRIB file ligt welk gebied uit de shapefile?
- Voor hoeveel procent van een vakje ligt een gebied dan in dat specifieke vakje?
Het tweede vraagstuk blijkt echter lastiger. Mijn idee is om het aantal pixels van zo'n GRIB-vakje vast te stellen, om vervolgens te kijken voor hoeveel pixels een gebied van de shapefile in dat vakje ligt. Het lukt me echter niet.
Wat heb ik al gedaan?
- Zorgen dat beide files hetzelfde CRS (coordinatenstelsel) hanteren
- Extra veld toevoegen aan de shapefile met waarde 1 om de gebieden te identificeren als gebied
- [/i]De shapefile naar een raster converteren[/li]
- Beide bestanden weer naar een polygoon converteren file naar een polygoon converteren
Ik denk zelf dat we nu de intersection moeten bepalen tussen de 2 files, waarvoor het programma (QGIS) ook een optie heeft. Ook zullen de bestanden wellicht gejoind moeten worden. Ik heb al verschillende dingen geprobeerd, echter werkten geen van allen. Ik heb het gevoel dat ik wat mis of wat verkeerd doe in mijn proces.
Bijzonder om te weten
De bestanden die door het KNMI worden verstrekt beweren GRIB (GRIB1 om precies te zijn) bestanden te zijn, echter ondersteunen de meeste programma's de bestanden van het KNMI niet. Andere GRIB1 bestanden worden wel geaccepteerd. Ik heb via het zeilersforum een python script gevonden die het naar een reguliere GRIB1 kan converteren (https://zeilersforum.nl/i...s-nu-beschikbaar?start=25) en ik heb ook een site gevonden die deze bestanden geconverteerd en al aanbied (http://www.euroszeilen.utwente.nl/weer/grib/). Deze bestanden worden wel ingeladen.
Ook treed er een complicatie op wanneer we de (geconverteerde) GRIB file inladen en vertalen naar een polygoon. Wat je zou verwachten is een raster met gelijke vakjes. Wat we krijgen is een raster met grotendeels gelijke vakjes, maar ook met vakjes die lijken op 3 vakjes horizontaal aan elkaar (welke dus ook 1 ID hebben). Of zelfs hele clusters aan elkaar zittende vakjes met 1 ID. Zie het screenshot.
BOTTOM LINE
Kan iemand mij een duwtje in de goede richting geven? Ik ben een leek op het gebied van GIS. Van nature ben ik een software engineer. Ik ben niet gebonden tot QGIS, andere oplossingen of tips zijn ook welkom. Als het met een andere tool kan, of met een simpel scriptje (ik prefereer .NET) ben ik helemaal happy.
In ieder geval, bedankt voor het lezen, en wellicht bedankt voor de suggesties!
Groetjes,
groeien