Skip to content
This repository has been archived by the owner on Jun 10, 2023. It is now read-only.

Create OGC Web Coverage Service from RIVM RIO APS output files #23

Open
justb4 opened this issue Oct 8, 2015 · 8 comments
Open

Create OGC Web Coverage Service from RIVM RIO APS output files #23

justb4 opened this issue Oct 8, 2015 · 8 comments
Assignees

Comments

@justb4
Copy link
Contributor

justb4 commented Oct 8, 2015

Uit: http://www.rivm.nl/Documenten_en_publicaties/Wetenschappelijk/Rapporten/2014/juni/Verbeterde_actuele_luchtkwaliteitskaarten_Validatie_interpolatiemethode_RIO_Nederland :
"Het RIVM presenteert elk uur de actuele luchtkwaliteitskaarten voor stikstofdioxide, ozon en fijn stof in Nederland op de website van het Landelijk Meetnet Luchtkwaliteit (LML). Meetgegevens van representatieve LML-locaties worden gebruikt om te berekenen wat de concentraties voor de rest van Nederland, buiten de meetpunten om." De RIO (residual interpolation optimised for ozone) interpolatiemethode, wordt hierbij gebruikt voor luchtkwaliteitskaarten om het publiek informeren over de actuele luchtkwaliteit.

Het resultaat van de RIO-procedures zijn ASCII grid bestanden in het zgn APS-formaat. Het formaat van deze bestanden is bekend (verkregen van RIVM via D Mooibroek). In een .aps bestand staat op de eerste regel metadata, met gegevens als datum, uur, component-naam, cell-grootte en origin (RD coordinaten). In rest van het bestand volgt dan de data, per rij een N-aantal kolommen. In feite een 2 dimensionaal array. De APS proefdata en APS-format documentatie staat in GitHub onder https://github.com/Geonovum/sospilot/tree/master/data/rivm-rio

In het kader van het project is er de wens om deze data als een OGC Web Coverage Service te ontsluiten. Dit zal ook aansluiting geven bij INSPIRE. Daarna zal data uit bijv het Smart Emission project (RU Nijmegen) in het RIO model ingevoerd worden en kan de output direct als WCS (en WMS) ontsloten worden.

Daartoe zal in eerste instantie een aantal APS proefbestanden omgezet worden in GeoTIFF bestanden. Deze GeoTIFFs kunnen vervolgens geserveerd worden als WCS en WMS via de bestaande SOSPilot GeoServer. Via WMS kan ook styling via SLD aangewend worden zodat de output sterk gelijkend wordt op de PNGs door RIVM gegenereerd uit de APS bestanden als in plaatje hieronder.

2015091611_no2

justb4 added a commit that referenced this issue Oct 8, 2015
@justb4 justb4 self-assigned this Oct 8, 2015
justb4 added a commit that referenced this issue Oct 8, 2015
@justb4
Copy link
Contributor Author

justb4 commented Oct 8, 2015

First shot: developed aps2raster using GDAL and NumPy. COnverts APS to GeoTIFF. Using SLD styling can be added to GeoServer as WMS and WCS. Very close approximation to original RIVM image above.
aps_no2_compared

justb4 added a commit that referenced this issue Oct 8, 2015
@thijsbrentjens
Copy link
Member

Very nice! Any idea what the differences are and to what extent they matter? Is that something to discuss with RIVM?

@justb4
Copy link
Contributor Author

justb4 commented Oct 9, 2015

The differences are caused by interpretation of the boundaries of the intervals: for example a value of exact 20 is darkblue (legenda < 20) in the RIVM map, but lightblue (< 20) in my map. Same for PM10, see picture, where there are a lot of values of 10 ug/m3...

aps_pm10_compared

@thijsbrentjens
Copy link
Member

So just a matter of different styling? That seems trivial to me. Very nice results.

@justb4
Copy link
Contributor Author

justb4 commented Oct 9, 2015

Somehow that did not give the same result. What could be the case, is that the floating point numbers are truncated (by RIVM) to ints, while in my Python prog https://github.com/Geonovum/sospilot/blob/master/src/rivm-rio/aps2raster.py I round them. The latter renders higher values but is more true to the original values. I could give that (truncating) a try.

@justb4
Copy link
Contributor Author

justb4 commented Oct 9, 2015

Hmm, it is my rounding that puts some values in the wrong interval. For example the value 19.7 at RD coords 89090, 446980 becomes 20 when rounded and then matches the interval 20-50, but 19.7 is still < 20! So I dropped the rounding and made the GeoTIFF cells Float32. Now the images are identical as below AFAICS. Thanks for reminding me! BTW the WCS is also live: http://sensors.geonovum.nl/gs/sensors/wcs?

aps_no2_compared

aps_pm10_compared

@justb4
Copy link
Contributor Author

justb4 commented Oct 9, 2015

And documentation added: http://sospilot.readthedocs.org/en/latest/rio.html

@thijsbrentjens
Copy link
Member

Great work!

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

No branches or pull requests

2 participants