Metadata
De WIWB API 2.0 biedt verschillende metadata endpoints die informatie verschaffen over de beschikbare databronnen, variabelen, locaties en ruimtelijke dekking. Hieronder een overzicht van alle metadata endpoints:
- Datasources: POST
/api/entity/datasources/get - Locations: POST
/api/entity/locations/get - Variables: POST
/api/entity/variables/get - DatasourceVariables: POST
/api/entity/datasourcevariables/get - Projections: POST
/api/entity/projections/get - GridDefinitions: POST
/api/entity/griddefinitions/get - TimeseriesInformations: POST
/api/entity/timeseriesinformations/get
Er is een overzicht van alle metadata endpoints in een Swagger documentatie beschikbaar. Deze is te vinden via de volgende link: WIWB2.0 API Swagger documentatie.
Daarnaast is er ook een compleet overzicht van alle beschikbare metadata verzoeken in een Postman project met voorbeeldverzoeken.
Datasources
Dit endpoint retourneert een lijst van alle beschikbare databronnen in de WIWB2.0 API, inclusief hun kenmerken zoals naam, code, tijdsinterval en beschikbaarheid.
Met het volgende verzoek kunnen de kenmerken van alle databronnen opgevraagd worden:
POST /api/entity/datasources/get met in de body:
{}
Het is ook mogelijk om de kenmerken van specifieke databronnen op te vragen door 1 of meer DataSourceCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/datasources/get met in de body:
{ "DataSourceCodes": ["Knmi.AwsTenMinutes", "Knmi.Harmonie.43"] }
Het antwoord van een datasources verzoek bevat een json met de verschillende kenmerken van de opgevraagde databronnen. Zie hieronder een voorbeeld van de databron "Knmi.AwsTenMinutes":
{ "DataSources": { "Knmi.AwsTenMinutes": { "Code": "Knmi.AwsTenMinutes", "Name": "KNMI AWS 10 Minutes", "Settings": { "Time": { "Interval": { "Type": "Minutes", "Value": 10 } }, "MaximumDelay": { "Type": "Hours", "Value": 1 } }, "StartDate": "20171125143000", "EndDate": "20250901183000", "LastDateWithData": "20250129111000", "IsEnabled": true, "AutoConnectVariables": false, "TimeZoneOffset": "+0000", "PrimaryStructureType": "TimeSeries", "DataProviderAssemblyId": 28, "DataSourceGroupCode": "WIWB2.0", "LogCollectionId": 100098 } }, "TimeZoneOffset": "+0000" }
Voor een compleet overzicht van alle beschikbare databronnen en hun kenmerken, zie Databronnen.
Voor een compleet overzicht van alle beschikbare datasource metadata verzoeken is een Postman project beschikbaar.
Locations
Dit endpoint retourneert een lijst van alle beschikbare locaties in de WIWB2.0 API, inclusief hun kenmerken zoals unieke identifier, locationid, code, coördinaten en hoogte.
Met het volgende verzoek kunnen de kenmerken van de locaties van alle beschikbare databronnen opgevraagd worden:
POST /api/entity/locations/get met in de body:
{}
Het is ook mogelijk om de locaties op te vragen voor 1 of meerdere specifieke databronnen door 1 of meer DataSourceCodes in de body mee te geven, bijvoorbeeld::
POST /api/entity/locations/get met in de body:
{ "DataSourceCodes": ["Knmi.AwsTenMinutes", "Knmi.Harmonie.43"] }
N.B. er kunnen alleen locaties opgevraagd worden voor databronnen die locaties bevatten, de tijdreeksen (zie het overzicht van de databronnen met structureType = TimeSeries). Voor grid data zijn er geen locaties beschikbaar.
Daarnaast is het ook mogelijk om de locaties op te vragen voor 1 of meerdere specifieke variabelen door 1 of meer VariableCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/locations/get met in de body:
{ "VariableCodes": ["WindSpeed", "AirPressure"] }
Het antwoord van een locations verzoek bevat een json met de verschillende kenmerken van de opgevraagde locaties. Zie hieronder een voorbeeld van locaties voor de "Knmi.IrisValidated" (json is ingekort voor de leesbaarheid):
{ "Locations": { "Knmi.Iris#514": { "Identifier": "Knmi.Iris#514", "LocationId": 2199, "Code": "514", "Name": "Epe", "X": 6.00352386738915, "Y": 52.34230941730905, "Z": 0, "Tags": {}, "ProjectionId": 3 }, "Knmi.Iris#132": { "Identifier": "Knmi.Iris#132", "Code": "132", "Name": "Hunneheide (Assen)", "X": 6.5625, "Y": 52.99667, "Z": 0, "ProjectionId": 3 }, ... } }
Voor een compleet overzicht van alle beschikbare locations metadata verzoeken is een Postman project beschikbaar.
Variables
Dit endpoint retourneert een lijst van alle beschikbare variabelen in de WIWB2.0 API, inclusief hun kenmerken zoals naam, code en eenheid.
Met het volgende verzoek kunnen de kenmerken van de variabelen van alle databronnen opgevraagd worden:
POST /api/entity/variables/get met in de body:
{}
Het is ook mogelijk om de variabelen van specifieke databronnen op te vragen door 1 of meer DataSourceCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/variables/get met in de body:
{ "DataSourceCodes": ["Knmi.AwsTenMinutes", "Knmi.International.Radar.Composite"] }
Daarnaast is het ook mogelijk om de kenmerken van specifieke variabelen op te vragen door 1 of meer VariableCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/variables/get met in de body:
{ "VariableCodes": ["DPT", "P", "RH"] }
Het antwoord van een variables verzoek bevat een json met de verschillende kenmerken van de opgevraagde variabelen. Zie hieronder een voorbeeld van de variabelen voor de "Knmi.International.Radar.Composite":
{ "Variables": { "P": { "Code": "P", "Name": "Precipitation", "State": 1, "UnitCode": "MM" }, "P_day": { "Code": "P_day", "Description": "", "Name": "Precipitation daily sum", "State": 1, "UnitCode": "mm" }, "P_hour": { "Code": "P_hour", "Name": "Precipitation hourly sum", "State": 1, "UnitCode": "mm" } } }
Voor een compleet overzicht van alle beschikbare variables metadata verzoeken is een Postman project beschikbaar.
DatasourceVariables
Dit endpoint retourneert een lijst van alle unieke combinaties van variabele en databron in de WIWB2.0 API, inclusief hun kenmerken zoals VariableCode, DataSourceCode, UnitCode en bijvoorbeeld de gebruikte nodata waarde. Hierin is ook informatie opgenomen over de waarden van variabelen te aggregeren zijn (MathematicalType=Summable).
Met het volgende verzoek kunnen de kenmerken van alle unieke combinaties van variabele en databron opgevraagd worden voor alle databronnen:
POST /api/entity/datasourcevariables/get met in de body:
{}
Het is ook mogelijk om de DatasourceVariables van specifieke databronnen op te vragen door 1 of meer DataSourceCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/datasourcevariables/get met in de body:
{ "DataSourceCodes": ["Satdata.Evapotranspiration.V2"] }
Het antwoord van een datasourcevariables verzoek bevat een json met de verschillende kenmerken van de opgevraagde DatasourceVariables. Zie hieronder een voorbeeld van de DatasourceVariables voor de "Satdata.Evapotranspiration.V2" (inkort voor de leesbaarheid):
{ "DataSourceVariables": { "2555": { "DataSourceVariableId": 2555, "VariableCode": "QualityFlag", "DataSourceCode": "Satdata.Evapotranspiration.V2", "UnitCode": "qualityindicator", "Name": "Quality flag", "Code": "qf", "DataType": "Single", "NoDataValue": -32768, "MathematicalType": "NotSummable", "MeasurementType": "Period", "State": 1, "IsCumulative": false }, "2556": { "DataSourceVariableId": 2556, "VariableCode": "EvapotranspirationActual", "DataSourceCode": "Satdata.Evapotranspiration.V2", "UnitCode": "MM", "Name": "Evapotranspiration actual", "Code": "ea", "DataType": "Single", "NoDataValue": -32768, "MathematicalType": "Summable", "MeasurementType": "Period", "State": 1, "IsCumulative": false }, ... } }
Voor een compleet overzicht van alle beschikbare datasourcevariables metadata verzoeken is een Postman project beschikbaar.
Projections
Dit endpoint retourneert een lijst van alle beschikbare projecties in de WIWB2.0 API, inclusief hun kenmerken zoals naam, EPSG code en de projectiestring.
Met het volgende verzoek kunnen de kenmerken van alle projecties opgevraagd worden:
POST /api/entity/projections/get met in de body:
{}
Het is ook mogelijk om de projectie van een specifieke EPSG code op te vragen door 1 of meer EPSG code in de body mee te geven, bijvoorbeeld:
POST /api/entity/projections/get met in de body:
{ "Epsgs": [28992] }
Daarnaast is het ook mogelijk om de projectie van een specifieke ProjectionID op te vragen door 1 of meer ProjectionIDs in de body mee te geven, bijvoorbeeld:
POST /api/entity/projections/get met in de body:
{ "ProjectionIds": [1, 3] }
Het antwoord van dit verzoek bevat een json met de verschillende kenmerken van de opgevraagde projecties. Zie hieronder een voorbeeld van de projectie voor de EPSG code 28992 (inkort voor de leesbaarheid):
{ "Projections": { "1": { "ProjectionId": 1, "Name": "Amersfoort_RD_New", "Epsg": 28992, "ProjectionString": "+proj=sterea +lat_0=52.15616055555555 +lon_0=5.38763888888889 +k=0.999908 +x_0=155000 +y_0=463000 +ellps=bessel +units=m +towgs84=565.2369,50.0087,465.658,-0.406857330322398,0.350732676542563,-1.8703473836068,4.0812 +no_defs" } } }
Voor een compleet overzicht van alle beschikbare projections metadata verzoeken is een Postman project beschikbaar.
GridDefinitions
Dit endpoint retourneert een lijst van alle beschikbare grid definities in de WIWB2.0 API, inclusief hun kenmerken zoals de boundingbox, de gridcelgrootte, het aantal rijen en kolommen van het grid, etc.
Met het volgende verzoek kunnen de kenmerken van alle grid definities opgevraagd worden:
POST /api/entity/griddefinitions/get met in de body:
{}
Het is ook mogelijk om de grid definities van specifieke databronnen op te vragen door 1 of meer DataSourceCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/griddefinitions/get met in de body:
{ "DataSourceCodes": ["Knmi.Harmonie.43", "Satdata.Evapotranspiration.V2"] }
N.B. er kunnen alleen grid definities opgevraagd worden voor databronnen van het type grid, modelgrid of ensemblegris (zie het overzicht van de databronnen). Voor tijdreeksen zijn er geen grid definities beschikbaar.
Daarnaast is het mogelijk om de grid definitie op te vragen voor 1 of meerdere specifieke GridDefinitionIds door 1 of meer GridDefinitionIds in de body mee te geven, bijvoorbeeld:
POST /api/entity/griddefinitions/get met in de body:
{ "GridDefinitionIds": [6, 36] }
Het antwoord van een griddefinitions verzoek bevat een json met de verschillende kenmerken van de opgevraagde grid definitie. Zie hieronder een voorbeeld van de griddefinitie voor de databron "Knmi.Harmonie.43":
{ "GridDefinitions": { "8": { "GridDefinitionId": 8, "Columns": 390, "Rows": 390, "CellWidth": 0.029, "CellHeight": 0.018, "Xll": 0, "Yll": 49, "Xur": 11.281, "Yur": 56.002, "Description": "KNMI Harmonie model v4.3 - variable resolution (0.029°x0.018°)", "Name": "Knmi.Harmonie.43", "ProjectionId": 3 } } }
Voor een compleet overzicht van alle beschikbare griddefinities metadata verzoeken is een Postman project beschikbaar.
TimeseriesInformations
Dit endpoint retourneert een lijst van alle beschikbare unieke combinaties van een (tijdreeks)locatie en datasourcevariable in de WIWB2.0 API, met hun kenmerken zoals start- en einddatum.
Met het volgende verzoek kunnen de kenmerken van alle unieke combinaties van een (tijdreeks)locatie en datasourcevariable opgevraagd worden voor alle tijdreeksen databronnen:
POST /api/entity/timeseriesinformations/get met in de body:
{ "DataSourceCodes": [] }
Het is ook mogelijk om de timeseriesinformatie van specifieke databronnen op te vragen door 1 of meer DataSourceCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/timeseriesinformations/get met in de body:
{ "DataSourceCodes": ["Knmi.AwsTenMinutes", "Knmi.IrisValidated"] }
N.B. er kunnen alleen timeseriesinformatie opgevraagd worden voor databronnen die locaties bevatten, de tijdreeksen (zie het overzicht van de databronnen met structureType = TimeSeries). Voor grid data zijn er geen locaties beschikbaar.
Daarnaast is het ook mogelijk om de timeseriesinformatie op te vragen voor 1 of meerdere specifieke VariableCodes door 1 of meer VariableCodes in de body mee te geven, bijvoorbeeld:
POST /api/entity/timeseriesinformations/get met in de body:
{ "VariableCodes": ["WindSpeed", "AirPressure"] }
Tot slot is het ook mogelijk om de timeseriesinformatie op te vragen voor 1 of meerdere specifieke timeseriesinformatie door 1 of meer TimeSeriesInformationIds in de body mee te geven, bijvoorbeeld:
POST /api/entity/timeseriesinformations/get met in de body:
{ "TimeSeriesInformationIds": [594] }
Het antwoord van timeseriesinformatie verzoeken bevat een json met de verschillende kenmerken van de opgevraagde timeseriesinformatie. Zie hieronder een voorbeeld van de timeseriesinformatie voor de variabele "WindSpeed" (inkort voor de leesbaarheid):
{ "TimeSeriesInformations": { "587": { "TimeSeriesInformationId": 587, "LocationIdentifier": "Knmi.Synops#06203", "DataSourceVariableId": 2419, "StartDate": "20250128230000", "EndDate": "20250901190000" }, "594": { "TimeSeriesInformationId": 594, "LocationIdentifier": "Knmi.Synops#06205", "DataSourceVariableId": 2419, "StartDate": "20250128230000", "EndDate": "20250901190000" }, ... } }
Voor een compleet overzicht van alle beschikbare timeseriesinformatie metadata verzoeken is een Postman project beschikbaar.