(BVK) LiDAR data hosting services

Beeldverwerkingketen GDI-Vlaanderen (BVK)
LiDAR data hosting services:
DHM Vlaanderen I (2001 - 2004)
DHM Vlaanderen II - Proefproject
Geraardsbergen (2012)
DHM Vlaanderen II (2013 - 2015)
Interfaces naar metadata en data
Versie 1.0
22 maart 2013
© BVK-MM, 2013
1 / 22
Beeldverwerkingsketen GDI-Vlaanderen
Versie
Auteur
Datum aanmaak
Datum afdruk
2 / 22
Versie 1.0
AGIV-VITO BVK ontwikkelteam
22 maart 2013
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
Document history
Release
Date
Description of Change
Editors
V1.0
22/03/2013
First release version
JB, NVC
© BVK, 2013
Reviewers
3 / 22
Beeldverwerkingsketen GDI-Vlaanderen
Content
1
Introduction
5
1.1 References
5
1.2 Terms, definitions en abbreviations
5
1.3 Document scope
5
2
Service authentication and authorization
8
3
WMS/WFS service capabilities
9
3.1 WMS service
9
3.2 WFS service
10
WMS usage
11
4.1 Get a map of the available LiDAR tiles
11
4.2 Get the attributes of a LiDAR tile
11
4.3 Styling the WMS results
13
4.4 Restrictions
15
4.5 WMS 1.1.1 and 1.3.0
15
WFS usage
17
5.1 Get layer information: DescribeFeatureType
17
5.2 Query metadata: GetFeature
18
5.3 GetFeature restrictions
18
5.4 Output format
19
6
Metadata
19
7
Browsing the datasets
22
4
5
4 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
1
Introduction
1.1
References
1.2
Terms, definitions en abbreviations
1.3
BVK
Beeldverwerkingsketen
LiDAR
Light Detection and Ranging
DHMV_I
LiDAR campaigns over Flanders from 2001-2004 in the framework of the
construction of a bare earth model (DHM) covering Flanders.
DHMV_II
LiDAR campaigns over Flanders from 2013-2015 in the framework of the
construction of a bare earth model (DHM) covering Flanders.
OGC
Open Geospatial Consortium
WMS
Web Map Service
WFS
Web Feature Service
Document scope
DTM-Flanders I (2001 – 2004) : Over the years 2001 – 2004, AGIV in cooperation with partners
ordered a regional LiDAR campaign in order to prepare a high resolution DTM (DTMV-I). the
LiDAR data was captured at an average density of 1 point per 4m², to obtain a TIN with an average
point density of 1 point per 20m². More information on the partnerships, the available derived
products and the applied processing can be found at http://www.agiv.be/gis/projecten/?catid=35.
This document describes the hosting services for the raw LiDAR data.
DTM-Flanders II (2013 – 2015) : In 2013 AGIV initiated an update of the former DTM. Therefore
LiDAR data is being recorded over a 3 year period 2013 – 2015, with an average point density of
16 points per m² and multiple returns. Simultaneously, during the LiDAR flight also multispectral
(RGB) imagery is recorded with a ground resolution of 8cm. More information on this DTM update
project can be found at http://www.agiv.be/gis/projecten/?catid=218.
In the framework of the DTM update project, a LiDAR test project was initiated in 2012 over the
municipality Geraardsbergen. The LiDAR data was recorded with the same specifications as those
specified for the actual DTM update project. As such this test project enables developers, as well
as users to get acquainted with the newly acquired data, the required (pre-)processing steps and
its possibilities.
The current datasets of DTMV-I and the 2012 test-project Geraardsbergen, as well as the future
datasets captured in the framework of the DTMV-II campaigns are hosted at the VITO facilities in
the context of the BVK project ( AGIV (www.agiv.be) and VITO (www.vito.be) cooperation) with
respect to remote sensing data hosting services.
WFS and WMS services are provided by the BVK project to disclose the attributes of the LiDAR
measurements. The decision to use the OGC (Open Geospatial Consortium
© BVK, 2013
5 / 22
Beeldverwerkingsketen GDI-Vlaanderen
http://www.opengeospatial.org/) WFS/WMS interfaces is based on INSPIRE interoperability
requirements with respect to the geographic data services.
The WMS interface is to be used to request the LiDAR-tile bounding boxes as a bitmap which
represents a projected and clipped visualization according the client viewing specifications. A WFS
is to be used whenever the underlying attributes of the features (i.e. the LiDAR tiles) must be
available.
Besides the WMS and WFS interfaces, this document describes the HTTP GET interface to
retrieve the LiDAR LAZ formatted tiles.
In the context of the Geraardsbergen test-project 2012, also the DSM and DTM raster tiles as well
as the multispectral RGB orthomozaiek tiles of the region are made available through WMS/WFS
interfaces and HTTP GET interfaces for retrieving the tiles.
The LiDAR processing for DTM and DSM generation is performed with LASTOOLS. For more
information on LASTOOLS please consult the LASTOOLS website at: http://rapidlasso.com/ or at:
http://www.laszip.org/.
This document is especially intended for service developers or GIS analysts, who want to integrate
the BVK-hosted data-layers in their Web or GIS applications. As such, because this audience might
not have Dutch as mother-tongue, it was decided to provide the interface documentation in English.
Figure 1. Partial view on the LiDAR tiles of the DHM1 dataset.
6 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
Figure 2. LiDAR tiles of the Geraardsbergen test-project 2012.
Figure 3. DSM/DTM/RGBmozaiek tiles of the Geraardsbergen test-project 2012.
© BVK, 2013
7 / 22
Beeldverwerkingsketen GDI-Vlaanderen
2
Service authentication and authorization
The request of a LiDAR tile or LiDAR tile metadata is a transaction involving three parties:

The mandated users through their internet browser or client application (client),

AGIV which manages the mandates of users (Identity Provider),

and VITO hosting the LiDAR data (Service Provider).
AGIV has chosen to implement the role of “Identity Provider” based on the WS-Federation standard
and comes in two “flavors”: (1) a passive scenario and (2) an active scenario.
In the passive scenario, the request of the client is redirected to the AGIV STS (Security Token
Service) https://auth.agiv.be/. Upon successful logon, the client can start a valid session.
However, the passive scenario is not possible in all clients (e.g. GIS software packages).
Therefore, an active scenario is provided. In this scenario, client applications can transfer their
requests using the “user id” and password basic authentication over HTTPS.
In your favorite browser you can test both security scenarios using the examples in following
sections. For testing the interfaces of the active scenario, the BVK development team has used the
open source GIS “QuantumGIS” (http://www.qgis.org/).
8 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
3
WMS/WFS service capabilities
In the context of the BVK with respect to the LiDAR hosting services, WFS and WMS interfaces are
provided to query and retrieve the metadata of the LiDAR tiles.
1
Since GeoServer is the reference implementation of the Open Geospatial Consortium (OGC) Web
Feature Service (WFS) and Web Coverage Service (WCS) standards, as well as a high
performance certified compliant Web Map Service (WMS), the combination Geoserver and
2
PostGIS was chosen to expose the spatial data layers.
3.1
WMS service
The WMS interface is intended to request the LiDAR tile bounding boxes as a bitmap. This bitmap
has the spatial extend and the size of the client map-drawing canvas (or the client map-drawing
canvas can be subdivided in smaller tiles to get a quicker response of the Geoserver) and can be
requested in a geographic projection and datum the client is using. To explore the available options
of the WMS one can make a call to the GeoServer using the GetCapabilities request type.
Passive scenario
Active scenario
Host
remotesensing.agiv.be
remotesensing.agiv.be
Path (case sensitive)
/geoserver/wms
/gis/geoserver/wms
Layer (case sensitive)
Agiv:LiDAR_DHMV_I
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_5m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_1m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_5m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_RGBMosaics_
tiles
Agiv:LiDAR_DHMV_II (currently no data available)
Protocol
https
Http method
GET, POST
GetCapabilities example in active scenario:
https://remotesensing.agiv.be/gis/geoserver/wms?REQUEST=GetCapabilities
GetCapabilities example in passive scenario:
https://remotesensing.agiv.be/geoserver/wms?REQUEST=GetCapabilities
1
2
http://geoserver.org/
http://postgis.refractions.net/
© BVK, 2013
9 / 22
Beeldverwerkingsketen GDI-Vlaanderen
3.2
WFS service
The WFS is intended to be used whenever the underlying attributes of the features (i.e. the LiDAR
LAZ tiles) must be available. To explore the available options of the WFS services, one can make a
call to the GeoServer using the GetCapabilities request type.
Passive scenario
Active scenario
Host
remotesensing.agiv.be
remotesensing.agiv.be
Path (case sensitive)
/geoserver/wfs
/gis/geoserver/wfs
Layer (case sensitive)
Agiv:LiDAR_DHMV_I
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_5m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_1m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_5m_tiles
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_RGBMosaics_ti
les
Agiv:LiDAR_DHMV_II (currently no data available)
Protocol
https
Http method
GET, POST
GetCapabilities example in active scenario:
https://remotesensing.agiv.be/gis/geoserver/wfs?REQUEST=GetCapabilities
GetCapabilities example in passive scenario:
https://remotesensing.agiv.be/geoserver/wfs?REQUEST=GetCapabilities
10 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
4
4.1
WMS usage
Get a map of the available LiDAR tiles
Using the WMS GetMap request, one can ask Geoserver to generate a PNG or JPG bitmap for a
certain bounding box. Table 1 presents some sample WMS GetMap calls.
Table 1. WMS HTTP-GET GetMap examples.
Active scenario:
https://remotesensing.agiv.be/gis/geoserver/wms?LAYERS=Agiv:LiDAR_
DHMV_II_ProefprojectGeraardsbergen_2012&TRANSPARENT=TRUE&F
ORMAT=image/png&TILED=false&SERVICE=WMS&VERSION=1.3.0&RE
QUEST=GetMap&STYLES=&CRS=EPSG:31370&BBOX=111900,156650,1
20100,164850&WIDTH=256&HEIGHT=256
Passive scenario:
https://remotesensing.agiv.be/geoserver/wms?LAYERS=Agiv:LiDAR_DH
MV_II_ProefprojectGeraardsbergen_2012&TRANSPARENT=TRUE&FOR
MAT=image/png&TILED=false&SERVICE=WMS&VERSION=1.3.0&REQUE
ST=GetMap&STYLES=&CRS=EPSG:31370&BBOX=111900,156650,12010
0,164850&WIDTH=256&HEIGHT=256
Active scenario:
https://remotesensing.agiv.be/gis/geoserver/wms?LAYERS=Agiv:LiDAR_
DHMV_I&TRANSPARENT=TRUE&FORMAT=image/png&TILED=false&SE
RVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&STYLES=&CRS=EP
SG:31370&BBOX=111900,156650,120100,164850&WIDTH=256&HEIGHT
=256
Passive scenario:
https://remotesensing.agiv.be/geoserver/wms?LAYERS=Agiv:LiDAR_DH
MV_I&TRANSPARENT=TRUE&FORMAT=image/png&TILED=false&SERVI
CE=WMS&VERSION=1.3.0&REQUEST=GetMap&STYLES=&CRS=EPSG:
31370&BBOX=111900,156650,120100,164850&WIDTH=256&HEIGHT=25
6
4.2
Get the attributes of a LiDAR tile
One can use the WMS service also for requesting the attribute information of the LiDAR tiles
covering a certain location. Since more than one LiDAR tile can cover a location, one should use
the FEATURE_COUNT parameter. An example WMS GetFeatureInfo call is presented in Table 2.
© BVK, 2013
11 / 22
Beeldverwerkingsketen GDI-Vlaanderen
Table 2. WMS HTTP-GET GetFeatureInfo example.
Active scenario:
https://remotesensing.agiv.be/gis/geoserver/wms?LAYERS=Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&
TRANSPARENT=TRUE&FORMAT=image/png&TILED=false&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetFeatur
eInfo&STYLES=&CRS=EPSG:31370&BBOX=111900,156650,120100,164850&WIDTH=256&HEIGHT=256&QUERY_LA
YERS=Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&INFO_FORMAT=text/html&X=131&Y=132&FEATURE
_COUNT=50
Results for FeatureType 'LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012':
-------------------------------------------tile_id = 176098
tile_geometry = [GEOMETRY (Polygon) with 194 points]
tile_location =
LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_018/Tiles/20120430_ES_VS_018_116000_160500.
laz
tile_date = 2012-04-30
tile_day = 121
tile_year = 2012
tile_julianday = 2456048.0
tile_file_source_id = 18
tile_system_identifier = Litemapper_6800
tile_point_density_allreturn = 11.27
tile_point_density_lastreturn = 8.82
tile_contractor = ES
tile_totalpoints = 2165172
--------------------------------------------------------------------------------------tile_id = 175319
tile_geometry = [GEOMETRY (Polygon) with 164 points]
tile_location =
LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_019/Tiles/20120430_ES_VS_019_116000_160500.
laz
tile_date = 2012-04-30
tile_day = 121
tile_year = 2012
tile_julianday = 2456048.0
tile_file_source_id = 19
tile_system_identifier = Litemapper_6800
tile_point_density_allreturn = 11.29
tile_point_density_lastreturn = 9.82
tile_contractor = ES
tile_totalpoints = 1282872
--------------------------------------------------------------------------------------tile_id = 175961
tile_geometry = [GEOMETRY (Polygon) with 230 points]
tile_location =
LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_016/Tiles/20120430_ES_VS_016_116000_160500.
laz
tile_date = 2012-04-30
tile_day = 121
tile_year = 2012
tile_julianday = 2456048.0
tile_file_source_id = 16
tile_system_identifier = Litemapper_6800
tile_point_density_allreturn = 12.5
tile_point_density_lastreturn = 9.19
tile_contractor = ES
tile_totalpoints = 1782692
--------------------------------------------------------------------------------------tile_id = 175497
tile_geometry = [GEOMETRY (Polygon) with 246 points]
tile_location =
LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_017/Tiles/20120430_ES_VS_017_116000_160500.
laz
tile_date = 2012-04-30
tile_day = 121
tile_year = 2012
tile_julianday = 2456048.0
12 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
tile_file_source_id = 17
tile_system_identifier = Litemapper_6800
tile_point_density_allreturn = 12.21
tile_point_density_lastreturn = 9.25
tile_contractor = ES
tile_totalpoints = 2667038
--------------------------------------------------------------------------------------tile_id = 176241
tile_geometry = [GEOMETRY (Polygon) with 235 points]
tile_location =
LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_DS_036/Tiles/20120430_ES_DS_036_116000_160500.
laz
tile_date = 2012-04-30
tile_day = 121
tile_year = 2012
tile_julianday = 2456048.0
tile_file_source_id = 36
tile_system_identifier = Litemapper_6800
tile_point_density_allreturn = 14.99
tile_point_density_lastreturn = 10.45
tile_contractor = ES
tile_totalpoints = 2223726
--------------------------------------------
4.3
Styling the WMS results
Every layer registered with GeoServer needs to have at least one style associated with it.
GeoServer comes bundled with a few basic styles, and any number of new styles can be added. It
is possible to change any layer’s associated style at any time in the Layers page of the Web
Administration Interface.
The styling can be changed in the WMS GetMap request. A good cookbook on SLD styling can be
found online:
http://docs.geoserver.org/stable/en/user/styling/sld-cookbook/.
To use a custom SLD one can include the SLD as an URL parameter by using the SLD_BODY tag.
Examples are presented in Table 3 and Table 4.
Note that such XML needs an appropriate URL encoding. The non-alphanumeric characters need
3
to be replaced by the corresponding hexadecimal ASCII value .
Also note that the LAYERS parameter is removed in the WMS call since already specified in the
SLD_BODY parameter.
Remark that for large XML style definition documents, the HTTP POST method will have to be
used, since the length of the HTTP GET URL will become too large.
3
For example : one can use http://meyerweb.com/eric/tools/dencoder/ to encode an XML: copy/paste the
XML in the edit field, press the encode button, and copy/paste the result after the “SLD_BODY=” parameter.
© BVK, 2013
13 / 22
Beeldverwerkingsketen GDI-Vlaanderen
Table 3. WMS GetMap example with custom SLD – LiDAR tiles
https://remotesensing.agiv.be/gis/geoserver/wms?LAYERS=Agiv:LiDAR_DHMV_II_
ProefprojectGeraardsbergen_2012&TRANSPARENT=TRUE&FORMAT=image/png
&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&CRS=EPSG:31370&BB
OX=111900,156650,120100,164850&WIDTH=256&HEIGHT=256&SLD_BODY=%3
CStyledLayerDescriptor%20version%3D%221.0.0%22%20xsi%3AschemaLocation
%3D%22http%3A%2F%2Fwww.opengis.net%2Fsld%20StyledLayerDescriptor.xsd
%22%20xmlns%3D%22http%3A%2F%2Fwww.opengis.net%2Fsld%22%20xmlns%
3Aogc%3D%22http%3A%2F%2Fwww.opengis.net%2Fogc%22%20xmlns%3Axlink
%3D%22http%3A%2F%2Fwww.w3.org%2F1999%2Fxlink%22%20xmlns%3Axsi%3
D%22http%3A%2F%2Fwww.w3.org%2F2001%2FXMLSchemainstance%22%3E%3CNamedLayer%3E%3CName%3EAgiv:LiDAR_DHMV_II_Proe
fprojectGeraardsbergen_2012%3C%2FName%3E%3CUserStyle%3E%3CTitle%3E
GeoServer%20SLD%20Cook%20Book%3A%20Simple%20point%20with%20stroke
%3C%2FTitle%3E%3CFeatureTypeStyle%3E%3CRule%3E%3CPolygonSymbolize
r%3E%3CFill%3E%3CCssParameter%20name%3D%22fill%22%3E%23FFFF00%3
C%2FCssParameter%3E%3CCssParameter%20name%3D%22fillopacity%22%3E0.5%3C%2FCssParameter%3E%3C%2FFill%3E%3CStroke%3E%
3CCssParameter%20name%3D%22stroke%22%3E%230000FF%3C%2FCssPara
meter%3E%3CCssParameter%20name%3D%22strokewidth%22%3E1%3C%2FCssParameter%3E%3C%2FStroke%3E%3C%2FPolygon
Symbolizer%3E%3C%2FRule%3E%3C%2FFeatureTypeStyle%3E%3C%2FUserSt
yle%3E%3C%2FNamedLayer%3E%3C%2FStyledLayerDescriptor%3E
Table 4. SLD style definition XML: yellow polygons with blue stroke line. The “Name” tag
must contain the name of the spatial layer to query.
<StyledLayerDescriptor version="1.0.0" xsi:schemaLocation="http://www.opengis.net/sld
StyledLayerDescriptor.xsd" xmlns="http://www.opengis.net/sld"
xmlns:ogc="http://www.opengis.net/ogc" xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<NamedLayer>
<Name>Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012</Name>
<UserStyle>
<Title>Polygon with stroke</Title>
<FeatureTypeStyle>
<Rule>
<PolygonSymbolizer>
<Fill>
<CssParameter name="fill">#FFFF00</CssParameter>
<CssParameter name="fill-opacity">0.5</CssParameter>
</Fill>
<Stroke>
<CssParameter name="stroke">#0000FF</CssParameter>
<CssParameter name="stroke-width">1</CssParameter>
</Stroke>
</PolygonSymbolizer>
</Rule>
</FeatureTypeStyle>
</UserStyle>
</NamedLayer>
</StyledLayerDescriptor>
14 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
4.4
Restrictions
To prevent CPU-expensive WMS queries (e.g. rendering all LiDAR tiles covering Flanders in a
bitmap), every single WMS request with respect to the data-layers:

Agiv:LiDAR_DHMV_I

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_5m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_1m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_5m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_RGBMosaics_tiles

Agiv:LiDAR_DHMV_II (currently no data available)
is restricted to a maximum area of 100 square kilometer. A HTTP error code 400 (Bad Request) is
returned when the requested area is larger.
If the client-view is larger than 100 km², the client shall launch multiple WMS calls to fill the client
canvas.
4.5
WMS 1.1.1 and 1.3.0
WMS 1.3 is a standard that is needed for INSPIRE and is increasingly being required by many
agencies. WMS 1.3 was only recently added to GeoServer as of version 2.1-beta3. Thus in the
current version (2.1.2), WMS 1.3.0 is supported.
The Geoserver manual states:
“The major differences between WMS versions 1.1.1 and 1.3.0 are: In 1.1.1 geographic coordinate
systems specified with the EPSG namespace are defined to have an axis ordering of
longitude/latitude. In 1.3.0 the ordering is latitude/longitude. In the GetMap operation the “srs”
parameter from 1.1.1 is now “crs” in 1.3.0. Although GeoServer supports both regardless of
version.
The specification mandates that the ordering of a geographic crs represented via an epsg identifier
(for example EPSG:4326) be ordered latitude/longitude or y/x. This essentially "flips" the regular
representation which is longitude/latitude or x/y. Because of the way geoserver internally
configures the geotools referencing subsystems, all geographic crs referenced by the historical
epsg identifier, EPSG:XXXX, be ordered longitude/latitude. However there is an alternate and
explicit notation in which the prefix urn:x-ogc:def:crs:EPSG:XXXX is used. When this prefixed is
used it is interpreted to mean latitude/longitude. So the approach to solving the axis order issue is
simple. For WMS 1.3 operations simply replace the former prefix with the latter prefix during the
request parsing phase of the operation.”
This is proven by following example, following calls deliver identical results:
https://remotesensing.agiv.be/gis/geoserver/wms?LAYERS=Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&TR
ANSPARENT=TRUE&FORMAT=image/png&TILED=false&SERVICE=WMS&VERSION=1.1.0&REQUEST=GetMap&STYL
ES=&SRS=EPSG:31370&BBOX=111900,156650,120100,164850&WIDTH=256&HEIGHT=256
https://remotesensing.agiv.be/gis/geoserver/wms?LAYERS=Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&TR
ANSPARENT=TRUE&FORMAT=image/png&TILED=false&SERVICE=WMS&VERSION=1.3.0&REQUEST=GetMap&STYL
ES=&CRS=EPSG:31370&BBOX=111900,156650,120100,164850&WIDTH=256&HEIGHT=256
© BVK, 2013
15 / 22
Beeldverwerkingsketen GDI-Vlaanderen
So, for the Belgian Lambert72 projection, it is not needed to flip the bounding box parameters from
x/y towards y/x. Otherwise, erroneous results will be obtained.
16 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
5
WFS usage
The WFS's preferred usage is via HTTP-POST, however for all examples described in this section,
the HTTP-GET method will work just fine.
5.1
Get layer information: DescribeFeatureType
To discover the properties or attributes of the FeatureType of interest, one first issues a
DescribeFeatureType request. The TypeName element shall contain the WFS layer name. In Table
5, the HTTP-GET URLs are given for the active scenario.
Now the consumer of the WFS service knows that he can pick attributes out of the <sequence>
element. Important to note here is that the attributes should be prefixed with the namespace,
currently being “Agiv”. So to use these attributes in a GetFeature request, one should use Agiv:
tile_julianday for example.
Table 5. Result of a “DescribeFeatureType” request, LiDAR tiles.
https://remotesensing.agiv.be/gis/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=DescribeFeatureType&TY
PENAME=Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012
<xsd:schema elementFormDefault="qualified" targetNamespace="http://mobile-mapping.agiv.be">
<xsd:import namespace="http://www.opengis.net/gml"
schemaLocation="http://mmlvsint1.intern.vgt.vito.be:8079/geoserver/schemas/gml/2.1.2/featur
e.xsd"/>
<xsd:complexType name="LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012Type">
<xsd:complexContent>
<xsd:extension base="gml:AbstractFeatureType">
<xsd:sequence>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_id" nillable="true" type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_geometry" nillable="true"
type="gml:GeometryPropertyType"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_location" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_date" nillable="true"
type="xsd:date"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_day" nillable="true" type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_year" nillable="true"
type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_julianday" nillable="true"
type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_file_source_id" nillable="true"
type="xsd:int"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_system_identifier" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_point_density_allreturn"
nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_point_density_lastreturn"
nillable="true" type="xsd:double"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_contractor" nillable="true"
type="xsd:string"/>
<xsd:element maxOccurs="1" minOccurs="0" name="tile_totalpoints" nillable="true"
type="xsd:int"/>
</xsd:sequence>
</xsd:extension>
</xsd:complexContent>
</xsd:complexType>
<xsd:element name="LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012"
substitutionGroup="gml:_Feature"
type="Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012Type"/>
</xsd:schema>
© BVK, 2013
17 / 22
Beeldverwerkingsketen GDI-Vlaanderen
5.2
Query metadata: GetFeature
To perform a spatial query, multiple options can be used. These options are listed in Table 6.
Table 6. Spatial query options taken from the “GetCapabilites” results.
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
<ogc:SpatialOperator
name="Disjoint"/>
name="Equals"/>
name="DWithin"/>
name="Beyond"/>
name="Intersects"/>
name="Touches"/>
name="Crosses"/>
name="Contains"/>
name="Overlaps"/>
name="BBOX"/>
From experiments, it was noticed that the BBOX query performs superior because this type of
filtering can make optimal use of the R-tree that is used in the underlying PostGIS database.
Here, both DWithin and BBOX filtering mechanism will be described below. Note that in the
GetFeature examples below, we request only three attributes: position, id and filelocation. The
consumer of the service can request any attribute that comes out of the DescribeFeatureType call.
BBOX, active scenario examples:
https://remotesensing.agiv.be/gis/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&SRSNAME=EPSG:31370&BBOX=115950,160700,116050,1
60800
DWithin, active scenario examples:
https://remotesensing.agiv.be/gis/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&SRSNAME=EPSG:31370&Filter=<Filter><DWithin><Propert
yName>Agiv:tile_geometry</PropertyName><Point><coordinates>116000,160750</coordinates></Point><Distance
units="meter">50</Distance></DWithin></Filter>
5.3
GetFeature restrictions
To avoid “network-expensive” WFS calls (e.g. all LiDAR tiles in a province or entire Flanders), the
WFS service has a hard limit on the number of features that are returned. This limit is set at 10,000
for following data-layers:

Agiv:LiDAR_DHMV_I

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_5m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_1m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DTM_5m_tiles

Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_RGBMosaics_tiles

Agiv:LiDAR_DHMV_II (currently no data available)
The user can lower this limit by using the maxFeatures attribute that is available in the OGC WFS
standard.
18 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
5.4
Output format
The default format of the WFS result is GML. One can choose other formats as described in the
GetCapabilities result. A popular alternative for GML, which also has a smaller network footprint is
the comma delimited format (CSV). An example HTTP-GET call is given here:
https://remotesensing.agiv.be/gis/geoserver/wfs?SERVICE=WFS&VERSION=1.0.0&REQUEST=GetFeature&TYPENAME=
Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012&SRSNAME=EPSG:31370&BBOX=115950,160700,116050,1
60800&outputformat=csv
6
Metadata
All LiDAR tile attributes are listed in Table 7.

The [tile_geometry] parameter contains a list of x, y coordinates describing the convex hull of
the LiDAR data.

The [tile_location] parameter presents the physical location of the image and can be used to
construct the http-get command to retrieve the image. The URLs for retrieving an image in the
active and passive security scenario are respectively (the [filelocation] path is highlighted in
blue, the server path in red):
Active:
https://remotesensing.agiv.be/gis/data/LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_018/Tiles/2012
0430_ES_VS_018_115500_160500.laz
Passive:
https://remotesensing.agiv.be/data/LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_018/Tiles/2012043
0_ES_VS_018_115500_160500.laz

The [tile_date] string presents the data in following format: year-month-day. During database
ingestion, it was decided to add an additional floating point parameter [tile_julianday]. The
later parameter presents the date in an astronomical fashion. Julian days allow for direct time
computations or time comparisons.

The [tile_day] parameters presents the day of the year.

The [tile_year] parameters presents the year.

The [tile_point_density_allreturn] gives the total number of points per square meter. Multireturn LiDAR offers an opportunity to capture dense point data defining the first surface
(canopy) and penetration into the vegetation cover with many points hitting the ground. The
potential therefore exists to “map” the canopy, the bare earth, and many of the structural
characteristics such as canopy height, volume, and basal diameter from a single flight.

The [tile_point_density_lastreturn] gives the number of points per square meter. For multiple
returns, either the first or the last return should be used where the last return is preferred since
it is more likely to be at the ground surface.

The [tile_contractor] presents a short code for the company who executed the LiDAR
measurement campaign.

The [tile_totalpoints] gives the total number of points in the LAZ file.
© BVK, 2013
19 / 22
Beeldverwerkingsketen GDI-Vlaanderen
Table 7. The LiDAR tile attributes (WFS GML formatted)
<gml:featureMember>
<Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012
fid="LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012.fid--3e8864ce_13d8de84acc_-734">
<Agiv:tile_id>176076</Agiv:tile_id>
<Agiv:tile_geometry>
<gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#31370">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">115999.99,160602.58 ... 115999.99,160579.31
115999.99,160602.58</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</Agiv:tile_geometry>
<Agiv:tile_location>LiDAR_DHMV_2_ProefProjectGB2012/20120430_ES_VS_018/Tiles/20120430_ES_VS
_018_115500_160500.laz</Agiv:tile_location>
<Agiv:tile_date>2012-04-30</Agiv:tile_date>
<Agiv:tile_day>121</Agiv:tile_day>
<Agiv:tile_year>2012</Agiv:tile_year>
<Agiv:tile_julianday>2456048.0</Agiv:tile_julianday>
<Agiv:tile_file_source_id>18</Agiv:tile_file_source_id>
<Agiv:tile_system_identifier>Litemapper_6800</Agiv:tile_system_identifier>
<Agiv:tile_point_density_allreturn>12.48</Agiv:tile_point_density_allreturn>
<Agiv:tile_point_density_lastreturn>9.28</Agiv:tile_point_density_lastreturn>
<Agiv:tile_contractor>ES</Agiv:tile_contractor>
<Agiv:tile_totalpoints>2306496</Agiv:tile_totalpoints>
</Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012>
</gml:featureMember>
All DSM/DTM/RGB tile attributes are listed in Table 8 (ProefprojectGeraardsbergen_2012).

The [lam_xmin, lam_xmax, lam_ymin, lam_ymax] parameter contains de corresponding
minimum and maximum boundery coordinates (Lam72, EPSG:31370) for the data tile.

The [the_geom] parameter contains a list of x, y coordinates describing the convex hull of the
DSM/DTM/RGB data.

The [Path] parameter presents the physical location of the image and can be used to construct
the http-get command to retrieve the image. The URLs for retrieving an image in the active and
passive security scenario are respectively (the [filelocation] path is highlighted in blue, the
server path in red):
Active:
https://remotesensing.agiv.be/gis/data/LiDAR_DHMV_2_ProefProjectGB2012/DSM_01/DSM_2012_1M_115500_
160500.tif
Passive:
https://remotesensing.agiv.be/data/LiDAR_DHMV_2_ProefProjectGB2012/DSM_01/DSM_2012_1M_115500_160
500.tif
20 / 22
© BVK, 2013
Beeldverwerkingsketen GDI-Vlaanderen
Table 8. The DTM/DSM/RGB tile attributes (WFS GML formatted)
<gml:featureMember>
<Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles
fid="LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles.fid-586f6581_13f09b46955_-166">
<Agiv:id>61</Agiv:id>
<Agiv:resourcename>LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012</Agiv:resourcename>
<Agiv:path>
LiDAR_DHMV_2_ProefProjectGB2012/DSM_01/DSM_2012_1M_115500_160500.tif
</Agiv:path>
<Agiv:lam_xmin>115500</Agiv:lam_xmin>
<Agiv:lam_ymin>160500</Agiv:lam_ymin>
<Agiv:lam_xmax>116000</Agiv:lam_xmax>
<Agiv:lam_ymax>161000</Agiv:lam_ymax>
<Agiv:the_geom>
<gml:Polygon srsName="http://www.opengis.net/gml/srs/epsg.xml#31370">
<gml:outerBoundaryIs>
<gml:LinearRing>
<gml:coordinates decimal="." cs="," ts=" ">115500,161000 116000,161000
116000,160500 115500,160500 115500,161000</gml:coordinates>
</gml:LinearRing>
</gml:outerBoundaryIs>
</gml:Polygon>
</Agiv:the_geom>
</Agiv:LiDAR_DHMV_II_ProefprojectGeraardsbergen_2012_DSM_1m_tiles>
</gml:featureMember>
© BVK, 2013
21 / 22
Beeldverwerkingsketen GDI-Vlaanderen
7
Browsing the datasets
For browsing the LiDAR data-layers, as well as the DTM/DSM and RGB product layers, provided
through the BVK:
https://remotesensing.agiv.be/bvkviewer/
The latter viewer is only intended for demo purposes, interface testing and presenting a quick
overview of available datasets.
The BVK-team has chosen for the LAZ file format instead of the LAS format for distributing the
original LiDAR data. This choice is based on the fact that, the LAZ format:
 Has the smallest network and storage footprint. A LAZ file is typically more than 6 times
smaller in size than a LAS file.
 Open-source software is available for LAZ file-I/O (e.g. conversion to standard LAS-files).
Please consult the LASTOOLS website at: http://rapidlasso.com/
or at:
http://www.laszip.org/
Figure 4. BVK viewer. The LiDAR tile is rendered with LasView as part of the LASTOOLS
software package.
22 / 22
© BVK, 2013