1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217
|
# EXAMPLE ETL CONFIGURATION (Local Dutch Address Data (BAG) to INSPIRE Addresses)
# See also the INSPIRE FOSS project:
# http://code.google.com/p/inspire-foss/source/browse/#svn%2Ftrunk%2Fetl%2FNL.Kadaster%2FAddresses
# DEFINE THE ETL AS A ONE OR MORE CHAINS (PIPELINE) OF COMPONENTS
[etl]
chains = input_pg_woonplaats|gml_splitter|transformer_xslt|output_deegree_blobstore,
input_pg_postcode|gml_splitter|transformer_xslt|output_deegree_blobstore,
input_pg_openbareruimte|gml_splitter|transformer_xslt|output_deegree_blobstore,
input_pg_ligplaats|gml_splitter|transformer_xslt|output_deegree_blobstore,
input_pg_standplaats|gml_splitter|transformer_xslt|output_deegree_blobstore,
input_pg_verblijfsobject|gml_splitter|transformer_xslt|output_deegree_blobstore
[input_pg_woonplaats]
class = stetl.inputs.ogrinput.OgrPostgisInput
in_srs = EPSG:28992
in_pg_db = bag
in_pg_schema = bagaveen
in_pg_host = localhost
in_pg_user = postgres
in_pg_password = postgres
in_pg_port = 5432
in_pg_sql = SELECT
wp.identificatie,
wp.woonplaatsnaam,
translate(to_char(wp.begindatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'),' ', 'T') as begindatumtijdvakgeldigheid,
translate(to_char(wp.einddatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'), ' ', 'T') as einddatumtijdvakgeldigheid
FROM woonplaatsactueelbestaand as wp
out_srs = EPSG:4258
out_layer_name = woonplaats
out_geotype =
out_gml_format = GML3
out_dimension = 2
[input_pg_postcode]
class = stetl.inputs.ogrinput.OgrPostgisInput
in_srs = EPSG:28992
in_pg_db = bag
in_pg_schema = bagaveen
in_pg_host = localhost
in_pg_user = postgres
in_pg_password = postgres
in_pg_port = 5432
in_pg_sql = SELECT DISTINCT
na.postcode
FROM nummeraanduidingactueelbestaand as na
out_srs = EPSG:4258
out_layer_name = postcode
out_geotype =
out_gml_format = GML3
out_dimension = 2
[input_pg_openbareruimte]
class = stetl.inputs.ogrinput.OgrPostgisInput
in_srs = EPSG:28992
in_pg_db = bag
in_pg_schema = bagaveen
in_pg_host = localhost
in_pg_user = postgres
in_pg_password = postgres
in_pg_port = 5432
in_pg_sql = SELECT
orn.identificatie,
orn.openbareruimtenaam,
translate(to_char(orn.begindatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'),' ', 'T') as begindatumtijdvakgeldigheid,
translate(to_char(orn.einddatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'), ' ', 'T') as einddatumtijdvakgeldigheid
FROM openbareruimteactueelbestaand as orn
out_srs = EPSG:4258
out_layer_name = openbareruimte
out_geotype =
out_gml_format = GML3
out_dimension = 2
[input_pg_verblijfsobject]
class = stetl.inputs.ogrinput.OgrPostgisInput
in_srs = EPSG:28992
in_pg_db = bag
in_pg_schema = public
in_pg_host = localhost
in_pg_user = postgres
in_pg_password = postgres
in_pg_port = 5432
in_pg_sql = SELECT
na.identificatie,
na.huisnummer,
na.huisletter,
na.huisnummertoevoeging,
na.gerelateerdeopenbareruimte,
na.postcode,
(CASE
WHEN wp2.woonplaatsnaam IS NULL THEN
w.identificatie ELSE
wp2.identificatie END)
as woonplaats,
translate(to_char(na.begindatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'),' ', 'T') as begindatumtijdvakgeldigheid,
translate(to_char(na.einddatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'), ' ', 'T') as einddatumtijdvakgeldigheid,
ST_Force_2D(ao.geopunt)
FROM verblijfsobjectactueelbestaand ao
JOIN nummeraanduidingactueelbestaand na ON (na.identificatie = ao.hoofdadres)
JOIN openbareruimteactueelbestaand o ON (na.gerelateerdeopenbareruimte = o.identificatie)
JOIN woonplaatsactueelbestaand w ON (o.gerelateerdewoonplaats = w.identificatie)
LEFT OUTER JOIN woonplaatsactueelbestaand wp2 ON (na.gerelateerdewoonplaats = wp2.identificatie)
out_srs = EPSG:4258
out_layer_name = adres
out_geotype = POINT
out_gml_format = GML3
out_dimension = 2
[input_pg_ligplaats]
class = stetl.inputs.ogrinput.OgrPostgisInput
in_srs = EPSG:28992
in_pg_db = bag
in_pg_schema = bagaveen
in_pg_host = localhost
in_pg_user = postgres
in_pg_password = postgres
in_pg_port = 5432
in_pg_sql = SELECT
na.identificatie,
na.huisnummer,
na.huisletter,
na.huisnummertoevoeging,
na.gerelateerdeopenbareruimte,
na.postcode,
(CASE
WHEN wp2.woonplaatsnaam IS NULL THEN
w.identificatie ELSE
wp2.identificatie END)
as woonplaats,
translate(to_char(na.begindatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'),' ', 'T') as begindatumtijdvakgeldigheid,
translate(to_char(na.einddatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'), ' ', 'T') as einddatumtijdvakgeldigheid,
ST_Centroid(ST_Force_2D(ao.geovlak))
FROM ligplaatsactueelbestaand ao
JOIN nummeraanduidingactueelbestaand na ON (na.identificatie = ao.hoofdadres)
JOIN openbareruimteactueelbestaand o ON (na.gerelateerdeopenbareruimte = o.identificatie)
JOIN woonplaatsactueelbestaand w ON (o.gerelateerdewoonplaats = w.identificatie)
LEFT OUTER JOIN woonplaatsactueelbestaand wp2 ON (na.gerelateerdewoonplaats = wp2.identificatie)
out_srs = EPSG:4258
out_layer_name = adres
out_geotype = POINT
out_gml_format = GML3
out_dimension = 2
[input_pg_standplaats]
class = stetl.inputs.ogrinput.OgrPostgisInput
in_srs = EPSG:28992
in_pg_db = bag
in_pg_schema = bagaveen
in_pg_host = localhost
in_pg_user = postgres
in_pg_password = postgres
in_pg_port = 5432
in_pg_sql = SELECT
na.identificatie,
na.huisnummer,
na.huisletter,
na.huisnummertoevoeging,
na.gerelateerdeopenbareruimte,
na.postcode,
(CASE
WHEN wp2.woonplaatsnaam IS NULL THEN
w.identificatie ELSE
wp2.identificatie END)
as woonplaats,
translate(to_char(na.begindatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'),' ', 'T') as begindatumtijdvakgeldigheid,
translate(to_char(na.einddatumtijdvakgeldigheid, 'YYYY-MM-DD HH24:MI:SS'), ' ', 'T') as einddatumtijdvakgeldigheid,
ST_Centroid(ST_Force_2D(ao.geovlak))
FROM standplaatsactueelbestaand ao
JOIN nummeraanduidingactueelbestaand na ON (na.identificatie = ao.hoofdadres)
JOIN openbareruimteactueelbestaand o ON (na.gerelateerdeopenbareruimte = o.identificatie)
JOIN woonplaatsactueelbestaand w ON (o.gerelateerdewoonplaats = w.identificatie)
LEFT OUTER JOIN woonplaatsactueelbestaand wp2 ON (na.gerelateerdewoonplaats = wp2.identificatie)
out_srs = EPSG:4258
out_layer_name = adres
out_geotype = POINT
out_gml_format = GML3
out_dimension = 2
[output_std]
class = stetl.output.Output
[output_file]
class = stetl.outputs.fileoutput.FileOutput
file_path = test/output.gml
[output_deegree_blobstore]
class = stetl.outputs.deegreeoutput.DeegreeBlobstoreOutput
overwrite = False
feature_member_tag = member
srid = -1
database = pdok
schema = inspire_ad
host = localhost
user = pdok_owner
password = pdok_owner
port = 5432
[gml_splitter]
class = stetl.filters.gmlsplitter.GmlSplitter
max_features = 15000
start_container = <?xml version="1.0" encoding="UTF-8"?>
<ogr:FeatureCollection
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://ogr.maptools.org/ my.xsd"
xmlns:ogr="http://ogr.maptools.org/"
xmlns:gml="http://www.opengis.net/gml">
end_container = </ogr:FeatureCollection>
container_tag = ogr:FeatureCollection
start_feature_markers = <ogr:featureMember
end_feature_markers = </ogr:featureMember>
[transformer_xslt]
class = stetl.filters.xsltfilter.XsltFilter
script = local-to-inspire-ad-sd.xsl
|