nlextract / NLExtract

Convert (ETL) and visualize free Dutch geo-datasets.
https://nlextract.nl
GNU General Public License v3.0
155 stars 83 forks source link

BAGv2 factory ERROR cannot create class 'stetl.inputs.fileinput.VsiZipFileInput' #317

Closed sebastic closed 3 months ago

sebastic commented 3 years ago

stetl faalt bij het importeren van de BAGv2:

$ python3 ../../externals/stetl/bin/stetl -c conf/etl-imbag-2.1.0.cfg -a options/common.args -a options/$(hostname).arg
2021-04-23 18:09:33,928 util INFO Found lxml.etree, native XML parsing, fabulous!
2021-04-23 18:09:33,985 util INFO Found GDAL/OGR Python bindings, super!!
2021-04-23 18:09:33,988 main INFO Stetl version = 2.0
2021-04-23 18:09:33,991 main INFO Found args file at: options/common.args
2021-04-23 18:09:33,992 main INFO Found args file at: options/osiris.args
2021-04-23 18:09:33,992 ETL INFO INIT - Stetl version is 2.0
2021-04-23 18:09:33,992 ETL INFO Config/working dir = /home/bas/git/nlextract/nlextract/bagv2/etl/conf
2021-04-23 18:09:33,992 ETL INFO Reading config_file = conf/etl-imbag-2.1.0.cfg
2021-04-23 18:09:33,993 ETL INFO Substituting 17 args in config file from args_dict: ['pg_host', 'multival_opts', 'bag_input_file', 'schema', 'spatial_extent', 'pg_db', 'bag_file_ext', 'bag_obj_file_pat', 'config_opts', 'feat_per_tx', 'open_opts', 'pg_port', 'layer_creation_opts', 'srs_opts', 'pg_user', 'password', 'bag_file_wildcard']
2021-04-23 18:09:33,993 ETL INFO Substituting args OK
2021-04-23 18:09:33,993 ETL INFO START
2021-04-23 18:09:33,993 util INFO Timer start: total ETL
[...]
2021-04-23 18:09:34,175 chain INFO Assembling Chain: input_bag_leveringsdoc_file|convert_vsi_to_etree_doc|transformer_xslt_leveringsdoc|output_ogr_postgis...
2021-04-23 18:09:34,175 factory ERROR cannot create class 'stetl.inputs.fileinput.VsiZipFileInput'
2021-04-23 18:09:34,175 factory ERROR cannot create object instance from class 'stetl.inputs.fileinput.VsiZipFileInput' e=module 'stetl.inputs.fileinput' has no attribute 'VsiZipFileInput'
Traceback (most recent call last):
  File "/home/bas/git/nlextract/nlextract/bagv2/etl/../../externals/stetl/bin/stetl", line 43, in <module>
    main()
  File "/home/bas/git/nlextract/nlextract/bagv2/etl/../../externals/stetl/bin/stetl", line 36, in main
    etl.run()
  File "/usr/lib/python3/dist-packages/stetl/etl.py", line 154, in run
    chain.assemble()
  File "/usr/lib/python3/dist-packages/stetl/chain.py", line 87, in assemble
    etl_comp = factory.create_obj(self.config_dict, etl_section_name.strip())
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 28, in create_obj
    raise e
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 22, in create_obj
    class_obj = self.class_forname(class_string)
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 50, in class_forname
    raise e
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 46, in class_forname
    class_obj = getattr(
AttributeError: module 'stetl.inputs.fileinput' has no attribute 'VsiZipFileInput'

De Stetl 2.0 release kan niet gebruikt worden omdat de features gebruikt voor BAGv2 nog niet gereleased zijn, maar zelfs met de actuele code in git werkt het niet. Omdat code uit de geinstalleerde package alsnog gebruikt wordt.

justb4 commented 3 years ago

Ja inderdaad moet laatste (master) versie van Stetl gebruikt. Wordt tijd voor nieuwe release.... Deze (laatste Stetl master-versie) zit ook als submodule in NLExtract. Misschien heb je niet laatste versie submodule? Via PYTHONPATH is toch locale Stetl package/versie te omzeilen? Als we een stabiele versie Stetl hebben zou ik ook liever de submodule niet gebruiken/uitfaseren. Enige voordeel nu is dat de submodule een "gepinde" master-versie van Stetl heeft die zeker werkt en in NLExtract distributies/releases meekomt zodat je zeker bent dat geheel werkt. Maar ook NLExtract zou mogelijk Python package kunnen worden zodat alles met pip install en dependencies kan. Daarvoor moeten we project ook weer actiever beheren: versies uitbrengen etc. Helaas zijn er op dit moment buiten ons geen actieve bijdragers...

sebastic commented 3 years ago

Via PYTHONPATH is toch locale Stetl package/versie te omzeilen?

Nope, dan wordt nog steeds de code uit /usr/lib/python3/dist-packages gebruikt:

$ PYTHONPATH="/home/bas/git/nlextract/nlextract/externals/stetl:/home/bas/git/nlextract/nlextract:." python3 -c 'import pprint; import sys; print("sys.path: %s" % pprint.pformat(sys.path))'
sys.path: ['',
 '/home/bas/git/nlextract/nlextract/externals/stetl',
 '/home/bas/git/nlextract/nlextract',
 '/home/bas/git/nlextract/nlextract/bagv2/etl',
 '/usr/lib/python39.zip',
 '/usr/lib/python3.9',
 '/usr/lib/python3.9/lib-dynload',
 '/usr/local/lib/python3.9/dist-packages',
 '/usr/lib/python3/dist-packages',
 '/usr/lib/python3.9/dist-packages']
$ PYTHONPATH="/home/bas/git/nlextract/nlextract/externals/stetl:/home/bas/git/nlextract/nlextract:." python3 ../../externals/stetl/bin/stetl -c conf/etl-imbag-2.1.0.cfg -a options/common.args -a options/$(hostname).args 
2021-04-26 12:25:24,800 util INFO Found lxml.etree, native XML parsing, fabulous!
2021-04-26 12:25:24,853 util INFO Found GDAL/OGR Python bindings, super!!
2021-04-26 12:25:24,857 main INFO Stetl version = 2.0
2021-04-26 12:25:24,859 main INFO Found args file at: options/common.args
2021-04-26 12:25:24,860 main INFO Found args file at: options/osiris.args
2021-04-26 12:25:24,860 ETL INFO INIT - Stetl version is 2.0
2021-04-26 12:25:24,860 ETL INFO Config/working dir = /home/bas/git/nlextract/nlextract/bagv2/etl/conf
2021-04-26 12:25:24,860 ETL INFO Reading config_file = conf/etl-imbag-2.1.0.cfg
2021-04-26 12:25:24,860 ETL INFO Substituting 17 args in config file from args_dict: ['pg_user', 'bag_input_file', 'open_opts', 'srs_opts', 'schema', 'spatial_extent', 'bag_obj_file_pat', 'bag_file_ext', 'pg_host', 'bag_file_wildcard', 'multival_opts', 'layer_creation_opts', 'password', 'pg_db', 'feat_per_tx', 'config_opts', 'pg_port']
2021-04-26 12:25:24,860 ETL INFO Substituting args OK
2021-04-26 12:25:24,861 ETL INFO START
2021-04-26 12:25:24,861 util INFO Timer start: total ETL
2021-04-26 12:25:24,861 chain INFO Assembling Chain: input_sql_pre|output_postgres_sql...
2021-04-26 12:25:24,863 input INFO cfg = {'class': 'stetl.inputs.fileinput.StringFileInput', 'file_path': 'sql/create-schema.sql,sql/create-meta.sql,sql/create-tables.sql', 'format_args': 'schema:public'}
2021-04-26 12:25:24,863 fileinput INFO file_list=['sql/create-schema.sql', 'sql/create-meta.sql', 'sql/create-tables.sql']
2021-04-26 12:25:24,875 output INFO cfg = {'class': 'stetl.outputs.dboutput.PostgresDbOutput', 'database': 'bagv2', 'host': 'isis', 'port': '5432', 'user': '<hidden>', 'password': '<hidden>', 'schema': 'public'}
2021-04-26 12:25:24,875 chain INFO Running Chain: input_sql_pre|output_postgres_sql
2021-04-26 12:25:24,875 fileinput INFO Read/parse for start for file=sql/create-schema.sql....
2021-04-26 12:25:24,889 fileinput INFO Read/parse ok for file=sql/create-schema.sql
2021-04-26 12:25:24,890 dboutput INFO executing SQL
2021-04-26 12:25:24,890 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:25:24,922 postgis DEBUG Connected to database bagv2
2021-04-26 12:25:25,134 dboutput INFO executed SQL, rowcount=-1
2021-04-26 12:25:25,134 fileinput INFO Read/parse for start for file=sql/create-meta.sql....
2021-04-26 12:25:25,152 fileinput INFO Read/parse ok for file=sql/create-meta.sql
2021-04-26 12:25:25,152 dboutput INFO executing SQL
2021-04-26 12:25:25,152 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:25:25,163 postgis DEBUG Connected to database bagv2
2021-04-26 12:25:25,273 dboutput INFO executed SQL, rowcount=1
2021-04-26 12:25:25,273 fileinput INFO Read/parse for start for file=sql/create-tables.sql....
2021-04-26 12:25:25,284 fileinput INFO Read/parse ok for file=sql/create-tables.sql
2021-04-26 12:25:25,284 fileinput INFO all files done
2021-04-26 12:25:25,284 dboutput INFO executing SQL
2021-04-26 12:25:25,284 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:25:25,295 postgis DEBUG Connected to database bagv2
2021-04-26 12:25:29,718 dboutput INFO executed SQL, rowcount=1
2021-04-26 12:25:29,718 component INFO StringFileInput invokes=3 time(total, min, max, avg) = 0.043 0.011 0.018 0.014
2021-04-26 12:25:29,718 component INFO PostgresDbOutput invokes=3 time(total, min, max, avg) = 4.800 0.121 4.434 1.600
2021-04-26 12:25:29,718 chain INFO DONE - 3 rounds - chain=input_sql_pre|output_postgres_sql 
2021-04-26 12:25:29,718 chain INFO Assembling Chain: input_bag_leveringsdoc_file|convert_vsi_to_etree_doc|transformer_xslt_leveringsdoc|output_ogr_postgis...
2021-04-26 12:25:29,718 factory ERROR cannot create class 'stetl.inputs.fileinput.VsiZipFileInput'
2021-04-26 12:25:29,718 factory ERROR cannot create object instance from class 'stetl.inputs.fileinput.VsiZipFileInput' e=module 'stetl.inputs.fileinput' has no attribute 'VsiZipFileInput'
Traceback (most recent call last):
  File "/home/bas/git/nlextract/nlextract/bagv2/etl/../../externals/stetl/bin/stetl", line 43, in <module>
    main()
  File "/home/bas/git/nlextract/nlextract/bagv2/etl/../../externals/stetl/bin/stetl", line 36, in main
    etl.run()
  File "/usr/lib/python3/dist-packages/stetl/etl.py", line 154, in run
    chain.assemble()
  File "/usr/lib/python3/dist-packages/stetl/chain.py", line 87, in assemble
    etl_comp = factory.create_obj(self.config_dict, etl_section_name.strip())
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 28, in create_obj
    raise e
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 22, in create_obj
    class_obj = self.class_forname(class_string)
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 50, in class_forname
    raise e
  File "/usr/lib/python3/dist-packages/stetl/factory.py", line 46, in class_forname
    class_obj = getattr(
AttributeError: module 'stetl.inputs.fileinput' has no attribute 'VsiZipFileInput'

Alleen het verwijderen van de package laat de code uit de submodule werken.

$ PYTHONPATH="/home/bas/git/nlextract/nlextract/externals/stetl:/home/bas/git/nlextract/nlextract:." python3 ../../externals/stetl/bin/stetl -c conf/etl-imbag-2.1.0.cfg -a options/common.args -a options/$(hostname).args 
2021-04-26 12:34:38,127 util INFO Found lxml.etree, native XML parsing, fabulous!
2021-04-26 12:34:38,179 util INFO Found GDAL/OGR Python bindings, super!!
2021-04-26 12:34:38,182 main INFO Stetl version = 2.1.dev0
2021-04-26 12:34:38,183 main INFO Found args file at: options/common.args
2021-04-26 12:34:38,183 main INFO Found args file at: options/osiris.args
2021-04-26 12:34:38,183 ETL INFO INIT - Stetl version is 2.1.dev0
2021-04-26 12:34:38,183 ETL INFO Config/working dir = /home/bas/git/nlextract/nlextract/bagv2/etl/conf
2021-04-26 12:34:38,183 ETL INFO Reading config_file = conf/etl-imbag-2.1.0.cfg
2021-04-26 12:34:38,183 ETL INFO Substituting 17 args in config file from args_dict: ['multival_opts', 'bag_file_wildcard', 'pg_user', 'config_opts', 'pg_port', 'pg_host', 'spatial_extent', 'open_opts', 'bag_obj_file_pat', 'schema', 'bag_input_file', 'bag_file_ext', 'pg_db', 'layer_creation_opts', 'password', 'feat_per_tx', 'srs_opts']
2021-04-26 12:34:38,184 ETL INFO Substituting args OK
2021-04-26 12:34:38,184 ETL INFO START
2021-04-26 12:34:38,184 util INFO Timer start: total ETL
2021-04-26 12:34:38,184 chain INFO Assembling Chain: input_sql_pre|output_postgres_sql...
2021-04-26 12:34:38,193 input INFO cfg = {'class': 'stetl.inputs.fileinput.StringFileInput', 'file_path': 'sql/create-schema.sql,sql/create-meta.sql,sql/create-tables.sql', 'format_args': 'schema:public'}
2021-04-26 12:34:38,193 fileinput INFO file_list=['sql/create-schema.sql', 'sql/create-meta.sql', 'sql/create-tables.sql']
2021-04-26 12:34:38,203 output INFO cfg = {'class': 'stetl.outputs.dboutput.PostgresDbOutput', 'database': 'bagv2', 'host': 'isis', 'port': '5432', 'user': '<hidden>', 'password': '<hidden>', 'schema': 'public'}
2021-04-26 12:34:38,203 chain INFO Running Chain: input_sql_pre|output_postgres_sql
2021-04-26 12:34:38,203 fileinput INFO Read/parse for start for file=sql/create-schema.sql....
2021-04-26 12:34:38,203 fileinput INFO Read/parse ok for file=sql/create-schema.sql
2021-04-26 12:34:38,203 dboutput INFO executing SQL
2021-04-26 12:34:38,203 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:38,216 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:38,394 dboutput INFO executed SQL, rowcount=-1
2021-04-26 12:34:38,394 fileinput INFO Read/parse for start for file=sql/create-meta.sql....
2021-04-26 12:34:38,394 fileinput INFO Read/parse ok for file=sql/create-meta.sql
2021-04-26 12:34:38,394 dboutput INFO executing SQL
2021-04-26 12:34:38,394 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:38,404 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:38,497 dboutput INFO executed SQL, rowcount=1
2021-04-26 12:34:38,497 fileinput INFO Read/parse for start for file=sql/create-tables.sql....
2021-04-26 12:34:38,497 fileinput INFO Read/parse ok for file=sql/create-tables.sql
2021-04-26 12:34:38,497 fileinput INFO all files done
2021-04-26 12:34:38,497 dboutput INFO executing SQL
2021-04-26 12:34:38,497 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:38,508 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:40,505 dboutput INFO executed SQL, rowcount=1
2021-04-26 12:34:40,505 component INFO StringFileInput invokes=3 time(total, min, max, avg) = 0.000 9223372036854775808.000 0.000 0.000
2021-04-26 12:34:40,505 component INFO PostgresDbOutput invokes=3 time(total, min, max, avg) = 2.302 0.103 2.008 0.767
2021-04-26 12:34:40,505 chain INFO DONE - 3 rounds - chain=input_sql_pre|output_postgres_sql 
2021-04-26 12:34:40,505 chain INFO Assembling Chain: input_bag_leveringsdoc_file|convert_vsi_to_etree_doc|transformer_xslt_leveringsdoc|output_ogr_postgis...
2021-04-26 12:34:40,505 input INFO cfg = {'class': 'stetl.inputs.fileinput.VsiZipFileInput', 'file_path': 'test/data/lv/BAGNLDL-15092020-small.zip', 'name_filter': 'Leveringsdocument-BAG-Extract.xml'}
2021-04-26 12:34:40,505 fileinput INFO file_list=['test/data/lv/BAGNLDL-15092020-small.zip']
2021-04-26 12:34:40,548 output INFO cfg = {'class': 'stetl.outputs.ogroutput.Ogr2OgrOutput', 'temp_file': 'temp/bagger.xml', 'ogr2ogr_cmd': 'ogr2ogr\n-append\n-lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE\n-f PostgreSQL\n"PG:dbname=bagv2 host=isis port=5432 user=<hidden> password=<hidden> active_schema=public"\n-oo GFS_TEMPLATE=gfs/imbag-2.1.0.gfs\n-oo WRITE_GFS=NO\n-a_srs EPSG:28992\ntemp/bagger.xml'}
2021-04-26 12:34:40,548 chain INFO Running Chain: input_bag_leveringsdoc_file|convert_vsi_to_etree_doc|transformer_xslt_leveringsdoc|output_ogr_postgis
2021-04-26 12:34:40,589 fileinput DEBUG MATCH: ['/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', 'Leveringsdocument-BAG-Extract.xml']
2021-04-26 12:34:40,589 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/Leveringsdocument-BAG-Extract.xml
2021-04-26 12:34:40,594 fileinput INFO zip file read : test/data/lv/BAGNLDL-15092020-small.zip filecount=1
2021-04-26 12:34:40,594 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/Leveringsdocument-BAG-Extract.xml
2021-04-26 12:34:40,625 xsltfilter INFO XSLT Transform OK
2021-04-26 12:34:40,625 ogroutput INFO writing to file temp/bagger.xml
2021-04-26 12:34:40,626 ogroutput INFO written to temp/bagger.xml
2021-04-26 12:34:40,626 ogroutput INFO executing cmd=ogr2ogr -append -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=bas password=1l1ttl3m4pp3r active_schema=public" -oo GFS_TEMPLATE=gfs/imbag-2.1.0.gfs -oo WRITE_GFS=NO -a_srs EPSG:28992 temp/bagger.xml
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
2021-04-26 12:34:41,044 ogroutput INFO execute done
2021-04-26 12:34:41,044 fileinput INFO EOF file list, all files done
2021-04-26 12:34:41,044 component INFO VsiZipFileInput invokes=2 time(total, min, max, avg) = 0.046 0.046 0.046 0.023
2021-04-26 12:34:41,044 component INFO FormatConverter invokes=2 time(total, min, max, avg) = 0.026 0.026 0.026 0.013
2021-04-26 12:34:41,044 component INFO XsltFilter invokes=2 time(total, min, max, avg) = 0.006 0.006 0.006 0.003
2021-04-26 12:34:41,044 component INFO Ogr2OgrOutput invokes=2 time(total, min, max, avg) = 0.419 0.419 0.419 0.209
2021-04-26 12:34:41,044 chain INFO DONE - 2 rounds - chain=input_bag_leveringsdoc_file|convert_vsi_to_etree_doc|transformer_xslt_leveringsdoc|output_ogr_postgis 
2021-04-26 12:34:41,044 chain INFO Assembling Chain: input_string_file|command_executor...
2021-04-26 12:34:41,045 input INFO cfg = {'class': 'stetl.inputs.fileinput.StringFileInput', 'file_path': 'data/cbs/gemeentelijke-indeling_command.txt'}
2021-04-26 12:34:41,045 fileinput INFO file_list=['data/cbs/gemeentelijke-indeling_command.txt']
2021-04-26 12:34:41,045 chain INFO Running Chain: input_string_file|command_executor
2021-04-26 12:34:41,045 fileinput INFO Read/parse for start for file=data/cbs/gemeentelijke-indeling_command.txt....
2021-04-26 12:34:41,061 fileinput INFO Read/parse ok for file=data/cbs/gemeentelijke-indeling_command.txt
2021-04-26 12:34:41,061 fileinput INFO all files done
2021-04-26 12:34:41,061 execfilter INFO executing cmd=../../bag/bin/gemeentelijke-indeling.sh --convert-to-csv -i ../../bag/db/data/gemeentelijke-indeling.xml -o data/cbs/gemeentelijke-indeling.csv

2021-04-26 12:34:42,712 execfilter INFO execute done
2021-04-26 12:34:42,712 component INFO StringFileInput invokes=1 time(total, min, max, avg) = 0.016 0.016 0.016 0.016
2021-04-26 12:34:42,713 component INFO CommandExecFilter invokes=1 time(total, min, max, avg) = 1.651 1.651 1.651 1.651
2021-04-26 12:34:42,713 chain INFO DONE - 1 rounds - chain=input_string_file|command_executor 
2021-04-26 12:34:42,713 chain INFO Assembling Chain: input_cbs_gemeenten_csv|output_postgres_gemeenten...
2021-04-26 12:34:42,713 input INFO cfg = {'class': 'stetl.inputs.fileinput.CsvFileInput', 'file_path': 'data/cbs/gemeentelijke-indeling.csv', 'delimiter': ';', 'empty_string_is_none': 'True'}
2021-04-26 12:34:42,713 fileinput INFO file_list=['data/cbs/gemeentelijke-indeling.csv']
2021-04-26 12:34:42,713 output INFO cfg = {'class': 'stetl.outputs.dboutput.PostgresInsertOutput', 'database': 'bagv2', 'host': 'isis', 'port': '5432', 'user': '<hidden>', 'password': '<hidden>', 'schema': 'public', 'table': 'provincie_gemeente', 'key': 'gemeentecode', 'replace': 'true'}
2021-04-26 12:34:42,713 chain INFO Running Chain: input_cbs_gemeenten_csv|output_postgres_gemeenten
2021-04-26 12:34:42,713 fileinput INFO Open CSV file: data/cbs/gemeentelijke-indeling.csv
2021-04-26 12:34:42,713 dboutput INFO Init: connect to DB
2021-04-26 12:34:42,713 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:42,727 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:42,729 dboutput INFO query is INSERT INTO provincie_gemeente (provinciecode,provincienaam,gemeentecode,gemeentenaam,begindatum,einddatum) VALUES (%s,%s,%s,%s,%s,%s)
2021-04-26 12:34:42,729 dboutput INFO update query is UPDATE provincie_gemeente SET (provinciecode ,provincienaam ,gemeentecode ,gemeentenaam ,begindatum ,einddatum ) = (%s,%s,%s,%s,%s,%s) WHERE  gemeentecode = %s
2021-04-26 12:34:49,496 dboutput INFO committed 785 records
2021-04-26 12:34:49,497 component INFO CsvFileInput invokes=1 time(total, min, max, avg) = 0.002 0.002 0.002 0.002
2021-04-26 12:34:49,497 dboutput INFO Exit: disconnect from DB
2021-04-26 12:34:49,497 component INFO PostgresInsertOutput invokes=1 time(total, min, max, avg) = 6.767 6.767 6.767 6.767
2021-04-26 12:34:49,497 chain INFO DONE - 1 rounds - chain=input_cbs_gemeenten_csv|output_postgres_gemeenten 
2021-04-26 12:34:49,497 chain INFO Assembling Chain: input_bag_wpl_gem_koppeling_file|convert_vsi_to_etree_doc|transformer_xslt_gem_wpl|output_ogr_postgis...
2021-04-26 12:34:49,497 input INFO cfg = {'class': 'stetl.inputs.fileinput.VsiZipFileInput', 'file_path': 'test/data/lv/BAGNLDL-15092020-small.zip', 'name_filter': 'GEM-WPL-RELATIE*.xml'}
2021-04-26 12:34:49,497 fileinput INFO file_list=['test/data/lv/BAGNLDL-15092020-small.zip']
2021-04-26 12:34:49,505 output INFO cfg = {'class': 'stetl.outputs.ogroutput.Ogr2OgrOutput', 'temp_file': 'temp/bagger.xml', 'ogr2ogr_cmd': 'ogr2ogr\n-append\n-lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE\n-f PostgreSQL\n"PG:dbname=bagv2 host=isis port=5432 user=<hidden> password=<hidden> active_schema=public"\n-oo GFS_TEMPLATE=gfs/imbag-2.1.0.gfs\n-oo WRITE_GFS=NO\n-a_srs EPSG:28992\ntemp/bagger.xml'}
2021-04-26 12:34:49,505 chain INFO Running Chain: input_bag_wpl_gem_koppeling_file|convert_vsi_to_etree_doc|transformer_xslt_gem_wpl|output_ogr_postgis
2021-04-26 12:34:49,506 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', 'GEM-WPL-RELATIE-15092020.zip}', 'GEM-WPL-RELATIE-15092020-000001.xml']
2021-04-26 12:34:49,506 fileinput DEBUG ADD ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/GEM-WPL-RELATIE-15092020.zip}/GEM-WPL-RELATIE-15092020-000001.xml
2021-04-26 12:34:49,509 fileinput INFO zip file read : test/data/lv/BAGNLDL-15092020-small.zip filecount=1
2021-04-26 12:34:49,509 fileinput INFO Pop file record: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/GEM-WPL-RELATIE-15092020.zip}/GEM-WPL-RELATIE-15092020-000001.xml
2021-04-26 12:34:49,629 xsltfilter INFO XSLT Transform OK
2021-04-26 12:34:49,635 ogroutput INFO writing to file temp/bagger.xml
2021-04-26 12:34:49,886 ogroutput INFO written to temp/bagger.xml
2021-04-26 12:34:49,886 ogroutput INFO executing cmd=ogr2ogr -append -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=bas password=1l1ttl3m4pp3r active_schema=public" -oo GFS_TEMPLATE=gfs/imbag-2.1.0.gfs -oo WRITE_GFS=NO -a_srs EPSG:28992 temp/bagger.xml
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
2021-04-26 12:34:52,952 ogroutput INFO execute done
2021-04-26 12:34:52,961 fileinput INFO EOF file list, all files done
2021-04-26 12:34:52,967 component INFO VsiZipFileInput invokes=2 time(total, min, max, avg) = 0.010 0.004 0.006 0.005
2021-04-26 12:34:52,967 component INFO FormatConverter invokes=2 time(total, min, max, avg) = 0.054 0.054 0.054 0.027
2021-04-26 12:34:52,967 component INFO XsltFilter invokes=2 time(total, min, max, avg) = 0.071 0.071 0.071 0.035
2021-04-26 12:34:52,967 component INFO Ogr2OgrOutput invokes=2 time(total, min, max, avg) = 3.326 3.326 3.326 1.663
2021-04-26 12:34:52,967 chain INFO DONE - 2 rounds - chain=input_bag_wpl_gem_koppeling_file|convert_vsi_to_etree_doc|transformer_xslt_gem_wpl|output_ogr_postgis 
2021-04-26 12:34:52,967 chain INFO Assembling Chain: input_bag_zip_file|extract_bag_vsizip_file|expand_zip_archive|output_ogr2ogr...
2021-04-26 12:34:52,967 input INFO cfg = {'class': 'stetl.inputs.fileinput.VsiZipFileInput', 'file_path': 'test/data/lv/BAGNLDL-15092020-small.zip', 'name_filter': '[0-9][0-9][0-9][0-9][LSVNPOW][ITBUNPP][GAOMDRL][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]*.zip'}
2021-04-26 12:34:52,967 fileinput INFO file_list=['test/data/lv/BAGNLDL-15092020-small.zip']
2021-04-26 12:34:52,985 output INFO cfg = {'class': 'stetl.outputs.execoutput.Ogr2OgrExecOutput', 'input_format': 'string', 'dest_format': 'PostgreSQL', 'dest_data_source': '"PG:dbname=bagv2 host=isis port=5432 user=<hidden> password=<hidden> active_schema=public"', 'lco': '', 'spatial_extent': '', 'options': '-lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES', 'cleanup_input': 'False'}
2021-04-26 12:34:52,985 chain INFO Running Chain: input_bag_zip_file|extract_bag_vsizip_file|expand_zip_archive|output_ogr2ogr
2021-04-26 12:34:52,985 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999PND15092020.zip}']
2021-04-26 12:34:52,986 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999PND15092020.zip}
2021-04-26 12:34:52,986 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999PND15092020.zip
2021-04-26 12:34:52,986 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999LIG15092020.zip}']
2021-04-26 12:34:52,986 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999LIG15092020.zip}
2021-04-26 12:34:52,986 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999LIG15092020.zip
2021-04-26 12:34:52,986 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999NUM15092020.zip}']
2021-04-26 12:34:52,986 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999NUM15092020.zip}
2021-04-26 12:34:52,986 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999NUM15092020.zip
2021-04-26 12:34:52,986 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999OPR15092020.zip}']
2021-04-26 12:34:52,986 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999OPR15092020.zip}
2021-04-26 12:34:52,986 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999OPR15092020.zip
2021-04-26 12:34:52,986 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999VBO15092020.zip}']
2021-04-26 12:34:52,986 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999VBO15092020.zip}
2021-04-26 12:34:52,986 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999VBO15092020.zip
2021-04-26 12:34:52,990 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999WPL15092020.zip}']
2021-04-26 12:34:52,990 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999WPL15092020.zip}
2021-04-26 12:34:52,990 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999WPL15092020.zip
2021-04-26 12:34:52,990 fileinput DEBUG MATCH: ['/vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}', '9999STA15092020.zip}']
2021-04-26 12:34:52,990 fileinput DEBUG ZIP ENTRY: /vsizip/{/vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999STA15092020.zip}
2021-04-26 12:34:52,990 fileinput DEBUG ADD ENTRY: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999STA15092020.zip
2021-04-26 12:34:52,990 fileinput INFO zip file read : test/data/lv/BAGNLDL-15092020-small.zip filecount=7
2021-04-26 12:34:52,990 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999PND15092020.zip
2021-04-26 12:34:52,991 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999PND15092020.zip
2021-04-26 12:34:52,991 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999PND15092020.zip ok len=2066 bytes
2021-04-26 12:34:52,991 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=1
2021-04-26 12:34:52,992 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
2021-04-26 12:34:53,245 execoutput INFO execute done
2021-04-26 12:34:53,245 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999LIG15092020.zip
2021-04-26 12:34:53,245 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999LIG15092020.zip
2021-04-26 12:34:53,246 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999LIG15092020.zip ok len=1519 bytes
2021-04-26 12:34:53,246 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=1
2021-04-26 12:34:53,246 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
2021-04-26 12:34:53,403 execoutput INFO execute done
2021-04-26 12:34:53,404 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999NUM15092020.zip
2021-04-26 12:34:53,404 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999NUM15092020.zip
2021-04-26 12:34:53,404 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999NUM15092020.zip ok len=1899 bytes
2021-04-26 12:34:53,405 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=1
2021-04-26 12:34:53,405 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
2021-04-26 12:34:53,636 execoutput INFO execute done
2021-04-26 12:34:53,637 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999OPR15092020.zip
2021-04-26 12:34:53,637 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999OPR15092020.zip
2021-04-26 12:34:53,637 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999OPR15092020.zip ok len=7849 bytes
2021-04-26 12:34:53,658 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=2
2021-04-26 12:34:53,658 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
2021-04-26 12:34:53,845 execoutput INFO execute done
2021-04-26 12:34:53,845 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999VBO15092020.zip
2021-04-26 12:34:53,846 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999VBO15092020.zip
2021-04-26 12:34:53,846 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999VBO15092020.zip ok len=1936 bytes
2021-04-26 12:34:53,846 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=1
2021-04-26 12:34:53,846 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
2021-04-26 12:34:54,062 execoutput INFO execute done
2021-04-26 12:34:54,062 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999WPL15092020.zip
2021-04-26 12:34:54,062 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999WPL15092020.zip
2021-04-26 12:34:54,063 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999WPL15092020.zip ok len=8822 bytes
2021-04-26 12:34:54,063 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=2
2021-04-26 12:34:54,063 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
2021-04-26 12:34:54,212 execoutput INFO execute done
2021-04-26 12:34:54,212 fileinput INFO Pop file record: /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999STA15092020.zip
2021-04-26 12:34:54,212 fileextractor INFO Extracting /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999STA15092020.zip
2021-04-26 12:34:54,212 fileextractor INFO Extracted /vsizip/{test/data/lv/BAGNLDL-15092020-small.zip}/9999STA15092020.zip ok len=1500 bytes
2021-04-26 12:34:54,213 archiveexpander INFO Expanded temp/bagger.zip into temp/temp_dir OK - filecount=1
2021-04-26 12:34:54,213 execoutput INFO executing cmd=ogr2ogr -f PostgreSQL "PG:dbname=bagv2 host=isis port=5432 user=*** password=*** active_schema=public" -lco LAUNDER=YES -lco PRECISION=NO -lco FID=gid -lco SPATIAL_INDEX=NONE -append --config PG_USE_COPY YES -a_srs EPSG:28992 -gt 200000  -oo AUTOCORRECT_INVALID_DATA=NO -oo LEGACY_ID=YES temp/temp_dir
Warning 6: driver LVBAG does not support open option LEGACY_ID
Warning 1: Layer creation options ignored since an existing layer is
         being appended to.
2021-04-26 12:34:54,403 execoutput INFO execute done
2021-04-26 12:34:54,404 fileinput INFO EOF file list, all files done
2021-04-26 12:34:54,404 fileextractor INFO Input data is empty
2021-04-26 12:34:54,404 archiveexpander INFO Input data is empty
2021-04-26 12:34:54,404 component INFO VsiZipFileInput invokes=8 time(total, min, max, avg) = 0.006 0.005 0.005 0.001
2021-04-26 12:34:54,404 component INFO VsiFileExtractor invokes=8 time(total, min, max, avg) = 0.003 9223372036854775808.000 0.000 0.000
2021-04-26 12:34:54,404 component INFO ZipArchiveExpander invokes=8 time(total, min, max, avg) = 0.023 0.001 0.020 0.003
2021-04-26 12:34:54,404 component INFO Ogr2OgrExecOutput invokes=8 time(total, min, max, avg) = 1.385 0.149 0.254 0.173
2021-04-26 12:34:54,404 chain INFO DONE - 8 rounds - chain=input_bag_zip_file|extract_bag_vsizip_file|expand_zip_archive|output_ogr2ogr 
2021-04-26 12:34:54,404 chain INFO Assembling Chain: input_sql_post|output_postgres_sql...
2021-04-26 12:34:54,404 input INFO cfg = {'class': 'stetl.inputs.fileinput.StringFileInput', 'file_path': 'sql/finalize-tables.sql,sql/fill-reltables.sql,sql/create-views.sql,sql/create-indexes.sql', 'format_args': 'schema:public'}
2021-04-26 12:34:54,404 fileinput INFO file_list=['sql/finalize-tables.sql', 'sql/fill-reltables.sql', 'sql/create-views.sql', 'sql/create-indexes.sql']
2021-04-26 12:34:54,405 output INFO cfg = {'class': 'stetl.outputs.dboutput.PostgresDbOutput', 'database': 'bagv2', 'host': 'isis', 'port': '5432', 'user': '<hidden>', 'password': '<hidden>', 'schema': 'public'}
2021-04-26 12:34:54,405 chain INFO Running Chain: input_sql_post|output_postgres_sql
2021-04-26 12:34:54,405 fileinput INFO Read/parse for start for file=sql/finalize-tables.sql....
2021-04-26 12:34:54,568 fileinput INFO Read/parse ok for file=sql/finalize-tables.sql
2021-04-26 12:34:54,568 dboutput INFO executing SQL
2021-04-26 12:34:54,568 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:54,582 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:54,586 postgis ERROR error column "identificatie" of relation "nummeraanduiding" does not exist
 in query: -- Author: Just van den Broecke
-- SET search_path TO test,public;

-- Maak tabellen zoveel mogelijk compatibel met BAG v1
-- Alle geometrie nu 2D!

-- LIG specifiek
ALTER TABLE ligplaats RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE ligplaats RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE ligplaats RENAME COLUMN hoofdadresnummeraanduidingref TO hoofdadres;
ALTER TABLE ligplaats RENAME COLUMN nevenadresnummeraanduidingref TO nevenadressen;
ALTER TABLE ligplaats RENAME COLUMN status TO ligplaatsStatus;
ALTER TABLE ligplaats ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE ligplaats SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- NUM specifiek
ALTER TABLE nummeraanduiding ALTER COLUMN identificatie TYPE character varying(16);
ALTER TABLE nummeraanduiding ALTER COLUMN begingeldigheid TYPE timestamp with time zone;
ALTER TABLE nummeraanduiding ALTER COLUMN eindgeldigheid TYPE timestamp with time zone;
ALTER TABLE nummeraanduiding ALTER COLUMN documentnummer TYPE character varying(40);
ALTER TABLE nummeraanduiding ALTER COLUMN huisnummer TYPE numeric(5);
ALTER TABLE nummeraanduiding ALTER COLUMN huisletter TYPE character varying(1);
ALTER TABLE nummeraanduiding ALTER COLUMN huisnummertoevoeging TYPE character varying(4);
ALTER TABLE nummeraanduiding ALTER COLUMN postcode TYPE character varying(6);
ALTER TABLE nummeraanduiding ALTER COLUMN typeadresseerbaarobject TYPE typeadresseerbaarobject USING typeadresseerbaarobject::text::typeadresseerbaarobject;
ALTER TABLE nummeraanduiding ALTER COLUMN status TYPE nummeraanduidingStatus USING status::text::nummeraanduidingStatus;
ALTER TABLE nummeraanduiding ALTER COLUMN openbareruimteref TYPE character varying(16);
ALTER TABLE nummeraanduiding ADD COLUMN IF NOT EXISTS woonplaatsref character varying;
ALTER TABLE nummeraanduiding ALTER COLUMN woonplaatsref TYPE character varying(16);
ALTER TABLE nummeraanduiding DROP COLUMN IF EXISTS wkb_geometry CASCADE;

ALTER TABLE nummeraanduiding RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE nummeraanduiding RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE nummeraanduiding RENAME COLUMN openbareruimteref TO gerelateerdeOpenbareRuimte;
ALTER TABLE nummeraanduiding RENAME COLUMN woonplaatsref TO gerelateerdeWoonplaats;
ALTER TABLE nummeraanduiding RENAME COLUMN status TO nummeraanduidingStatus;
ALTER TABLE nummeraanduiding ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE nummeraanduiding SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- OPR specifiek
ALTER TABLE openbareruimte RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE openbareruimte RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE openbareruimte RENAME COLUMN naam TO openbareRuimteNaam;
ALTER TABLE openbareruimte RENAME COLUMN verkorteNaam TO verkorteOpenbareRuimteNaam;
ALTER TABLE openbareruimte RENAME COLUMN type TO openbareRuimteType;
ALTER TABLE openbareruimte RENAME COLUMN woonplaatsref TO gerelateerdeWoonplaats;
ALTER TABLE openbareruimte RENAME COLUMN status TO openbareRuimteStatus;
ALTER TABLE openbareruimte ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE openbareruimte SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- PND specifiek
ALTER TABLE pand ALTER COLUMN identificatie TYPE character varying(16);
ALTER TABLE pand ALTER COLUMN begingeldigheid TYPE timestamp with time zone;
ALTER TABLE pand ALTER COLUMN eindgeldigheid TYPE timestamp with time zone;
ALTER TABLE pand ALTER COLUMN status TYPE pandStatus USING status::text::pandStatus;
ALTER TABLE pand ALTER COLUMN documentnummer TYPE character varying(40);
ALTER TABLE pand ALTER COLUMN oorspronkelijkbouwjaar TYPE numeric(4);
-- Alles 2D !
-- ALTER TABLE pand ALTER COLUMN wkb_geometry TYPE geometry(PolygonZ, 28992) USING ST_Force3D(wkb_geometry);

ALTER TABLE pand RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE pand RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE pand RENAME COLUMN oorspronkelijkbouwjaar TO bouwjaar;
ALTER TABLE pand RENAME COLUMN status TO pandStatus;
ALTER TABLE pand RENAME COLUMN wkb_geometry TO geovlak;
ALTER TABLE pand ADD COLUMN aanduidingRecordInactief boolean default false;
ALTER TABLE pand ADD COLUMN geom_valid boolean default true;
UPDATE pand SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);
-- turn off for now, too intensive 
-- UPDATE pand SET geom_valid=ST_Isvalid(geovlak);

-- STA specifiek
ALTER TABLE standplaats RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE standplaats RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE standplaats RENAME COLUMN hoofdadresnummeraanduidingref TO hoofdadres;
ALTER TABLE standplaats RENAME COLUMN nevenadresnummeraanduidingref TO nevenadressen;
ALTER TABLE standplaats RENAME COLUMN status TO standplaatsStatus;
ALTER TABLE standplaats ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE standplaats SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- VBO specifiek
ALTER TABLE verblijfsobject ALTER COLUMN identificatie TYPE character varying(16);
ALTER TABLE verblijfsobject ALTER COLUMN begingeldigheid TYPE timestamp with time zone;
ALTER TABLE verblijfsobject ALTER COLUMN eindgeldigheid TYPE timestamp with time zone;
ALTER TABLE verblijfsobject ALTER COLUMN status TYPE verblijfsobjectStatus USING status::text::verblijfsobjectStatus;
ALTER TABLE verblijfsobject ALTER COLUMN documentnummer TYPE character varying(40);
ALTER TABLE verblijfsobject ALTER COLUMN hoofdadresnummeraanduidingref TYPE character varying(16);
ALTER TABLE verblijfsobject ALTER COLUMN nevenadresnummeraanduidingref TYPE character varying(16) ARRAY;
ALTER TABLE verblijfsobject ALTER COLUMN oppervlakte TYPE numeric(6);
ALTER TABLE verblijfsobject ALTER COLUMN pandref TYPE character varying(16) ARRAY;
-- Alles 2D!
-- ALTER TABLE verblijfsobject ALTER COLUMN wkb_geometry TYPE geometry(PointZ, 28992) USING ST_Force3D(wkb_geometry);

ALTER TABLE verblijfsobject RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE verblijfsobject RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE verblijfsobject RENAME COLUMN hoofdadresnummeraanduidingref TO hoofdadres;
ALTER TABLE verblijfsobject RENAME COLUMN nevenadresnummeraanduidingref TO nevenadressen;
ALTER TABLE verblijfsobject RENAME COLUMN gebruiksdoel TO gebruiksdoelverblijfsobject;
ALTER TABLE verblijfsobject RENAME COLUMN oppervlakte TO oppervlakteVerblijfsobject;
ALTER TABLE verblijfsobject RENAME COLUMN pandref TO gerelateerdepanden;
ALTER TABLE verblijfsobject RENAME COLUMN status TO verblijfsobjectStatus;
ALTER TABLE verblijfsobject RENAME COLUMN wkb_geometry TO geopunt;
ALTER TABLE verblijfsobject ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE verblijfsobject SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- WPL specifiek
ALTER TABLE woonplaats ALTER COLUMN naam TYPE character varying(80);
ALTER TABLE woonplaats RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE woonplaats RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE woonplaats RENAME COLUMN naam TO woonplaatsNaam;
ALTER TABLE woonplaats RENAME COLUMN status TO woonplaatsStatus;
ALTER TABLE woonplaats ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE woonplaats SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- PROV-GEM specifiek
-- Sorry Fryslân it spyt my - but for v1 compat...
UPDATE provincie_gemeente SET provincienaam='Friesland' where provinciecode = 21;

-- GEM-WPL specifiek
ALTER TABLE gemeente_woonplaats RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE gemeente_woonplaats RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE gemeente_woonplaats DROP COLUMN geometry;

-- Adresseerbaarobjectnevenadres
ALTER TABLE adresseerbaarobjectnevenadres RENAME COLUMN begingeldigheid TO begindatumTijdvakGeldigheid;
ALTER TABLE adresseerbaarobjectnevenadres RENAME COLUMN eindgeldigheid TO einddatumTijdvakGeldigheid;
ALTER TABLE adresseerbaarobjectnevenadres ADD COLUMN aanduidingRecordInactief boolean default false;
UPDATE adresseerbaarobjectnevenadres SET aanduidingrecordinactief=(tijdstipinactief is not NULL OR tijdstipnietbaglv is not NULL OR tijdstipinactiefLV is not NULL);

-- Convert MultiPolygon to Polygon for Pand
-- See GDAL Issue: https://github.com/OSGeo/gdal/issues/3467
-- LBVBAG driver generates MultiPolygon while BAG standard/XSD defines Polygon
-- This can be removed when that issue solved and incorporated in GDAL lib
-- ALTER TABLE pand ADD COLUMN geovlak_tmp geometry(Polygon, 28992);
-- UPDATE pand SET geovlak_tmp = (SELECT ST_GeometryN(geovlak,1) FROM pand p WHERE pand.gid = p.gid);
-- ALTER TABLE pand DROP COLUMN geovlak;
-- ALTER TABLE pand RENAME COLUMN geovlak_tmp TO geovlak;
 with params: None
2021-04-26 12:34:54,587 dboutput INFO executed SQL, rowcount=-1
2021-04-26 12:34:54,587 fileinput INFO Read/parse for start for file=sql/fill-reltables.sql....
2021-04-26 12:34:54,592 fileinput INFO Read/parse ok for file=sql/fill-reltables.sql
2021-04-26 12:34:54,592 dboutput INFO executing SQL
2021-04-26 12:34:54,592 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:54,603 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:54,609 postgis ERROR error column "identificatie" does not exist
LINE 23:         identificatie,
                 ^
HINT:  There is a column named "identificatie" in table "verblijfsobjectpand", but it cannot be referenced from this part of the query.
 in query: -- Fills the (Legacy) relation tables and nevenadres.
-- This is to remain compatible with BAG v1.
--
-- Just van den Broecke 2021
--

-- N-M relation VBO-PND
INSERT INTO verblijfsobjectpand (
     identificatie, aanduidingRecordInactief, tijdstipinactief,
     voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
     verblijfsobjectStatus,gerelateerdpand)
  SELECT
    vbo.identificatie,
    vbo.aanduidingRecordInactief,
    vbo.tijdstipinactief,
    vbo.voorkomenidentificatie,
    vbo.begindatumTijdvakGeldigheid,
    vbo.einddatumTijdvakGeldigheid,
    vbo.verblijfsobjectStatus,
    vbo.gerelateerdpand
FROM
    (SELECT
        identificatie,
        aanduidingRecordInactief,
        tijdstipinactief,
        voorkomenidentificatie,
        begindatumTijdvakGeldigheid,
        einddatumTijdvakGeldigheid,
        verblijfsobjectStatus,
        UNNEST(gerelateerdepanden) as gerelateerdpand
    FROM verblijfsobject) vbo;

-- Multiple VBO gebruiksdoelen.
INSERT INTO verblijfsobjectgebruiksdoel (
     identificatie, aanduidingRecordInactief, tijdstipinactief,
     voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
     verblijfsobjectStatus, gebruiksdoelverblijfsobject)
  SELECT
    vbo.identificatie,
    vbo.aanduidingRecordInactief,
    vbo.tijdstipinactief,
    vbo.voorkomenidentificatie,
    vbo.begindatumTijdvakGeldigheid,
    vbo.einddatumTijdvakGeldigheid,
    vbo.verblijfsobjectStatus,
    vbo.gebruiksdoelverblijfsobject
FROM
    (SELECT
        identificatie,
        aanduidingRecordInactief,
        tijdstipinactief,
        voorkomenidentificatie,
        begindatumTijdvakGeldigheid,
        einddatumTijdvakGeldigheid,
        verblijfsobjectStatus,
        UNNEST(gebruiksdoelverblijfsobject)::gebruiksdoelverblijfsobject as gebruiksdoelverblijfsobject
    FROM verblijfsobject) vbo;

-- Vul adresseerbaarobjectnevenadres uit VBO
-- Let op de ARRAY UNNEST om nevenadressen uit te splitsen naar rows.
INSERT INTO adresseerbaarobjectnevenadres (
     identificatie, aanduidingRecordInactief, nevenadres, hoofdadres, typeadresseerbaarobject, verblijfsobjectStatus,
     geconstateerd, documentdatum, documentnummer, voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
     tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv,
     tijdstipinactieflv, tijdstipnietbaglv, geopunt)
  SELECT
    vbo.identificatie,
    vbo.aanduidingRecordInactief,
    vbo.nevenadres,
    vbo.hoofdadres as hoofdadres,
    'VBO' as typeadresseerbaarobject,
    vbo.verblijfsobjectStatus,

    vbo.geconstateerd,
    vbo.documentdatum,
    vbo.documentnummer,
    vbo.voorkomenidentificatie,
    vbo.begindatumTijdvakGeldigheid,
    vbo.einddatumTijdvakGeldigheid,
    vbo.tijdstipregistratie,
    vbo.eindregistratie,
    vbo.tijdstipinactief,
    vbo.tijdstipregistratielv,
    vbo.tijdstipeindregistratielv,
    vbo.tijdstipinactieflv,
    vbo.tijdstipnietbaglv,

    vbo.geopunt
FROM
    (SELECT
        identificatie,
        aanduidingRecordInactief,
        hoofdadres,
        UNNEST(nevenadressen) as nevenadres,
        verblijfsobjectStatus,
        geconstateerd, documentdatum, documentnummer, voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
        tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv,
        tijdstipinactieflv, tijdstipnietbaglv, geopunt
    FROM  verblijfsobject) vbo
WHERE nevenadres IS NOT NULL;

-- Vul adresseerbaarobjectnevenadres uit LIG
-- Let op de ARRAY UNNEST om nevenadressen uit te splitsen naar rows.
INSERT INTO adresseerbaarobjectnevenadres (
     identificatie, aanduidingRecordInactief, nevenadres, hoofdadres, typeadresseerbaarobject, ligplaatsStatus,
     geconstateerd, documentdatum, documentnummer, voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
     tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv,
     tijdstipinactieflv, tijdstipnietbaglv, geopunt)
  SELECT
    lig.identificatie,
    lig.aanduidingRecordInactief,
    lig.nevenadres,
    lig.hoofdadres as hoofdadres,
    'LIG' as typeadresseerbaarobject,
    lig.ligplaatsStatus,

    lig.geconstateerd,
    lig.documentdatum,
    lig.documentnummer,
    lig.voorkomenidentificatie,
    lig.begindatumTijdvakGeldigheid,
    lig.einddatumTijdvakGeldigheid,
    lig.tijdstipregistratie,
    lig.eindregistratie,
    lig.tijdstipinactief,
    lig.tijdstipregistratielv,
    lig.tijdstipeindregistratielv,
    lig.tijdstipinactieflv,
    lig.tijdstipnietbaglv,

    ST_Centroid(lig.geovlak) as geopunt
  FROM
    (SELECT
        identificatie,
        aanduidingRecordInactief,
        hoofdadres,
        UNNEST(nevenadressen) as nevenadres,
        ligplaatsStatus,
        geconstateerd, documentdatum, documentnummer, voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
        tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv,
        tijdstipinactieflv, tijdstipnietbaglv, geovlak
    FROM  ligplaats) lig
WHERE nevenadres IS NOT NULL;

-- Vul adresseerbaarobjectnevenadres uit STA
-- Let op de ARRAY UNNEST om nevenadressen uit te splitsen naar rows.
INSERT INTO adresseerbaarobjectnevenadres (
     identificatie, aanduidingRecordInactief, nevenadres, hoofdadres, typeadresseerbaarobject, standplaatsStatus,
     geconstateerd, documentdatum, documentnummer, voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
     tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv,
     tijdstipinactieflv, tijdstipnietbaglv, geopunt)
  SELECT
    sta.identificatie,
    sta.aanduidingRecordInactief,
    sta.nevenadres,
    sta.hoofdadres as hoofdadres,
    'STA' as typeadresseerbaarobject,
    sta.standplaatsStatus,

    sta.geconstateerd,
    sta.documentdatum,
    sta.documentnummer,
    sta.voorkomenidentificatie,
    sta.begindatumTijdvakGeldigheid,
    sta.einddatumTijdvakGeldigheid,
    sta.tijdstipregistratie,
    sta.eindregistratie,
    sta.tijdstipinactief,
    sta.tijdstipregistratielv,
    sta.tijdstipeindregistratielv,
    sta.tijdstipinactieflv,
    sta.tijdstipnietbaglv,

    ST_Centroid(sta.geovlak) as geopunt
  FROM
    (SELECT
        identificatie,
        aanduidingRecordInactief,
        hoofdadres,
        UNNEST(nevenadressen) as nevenadres,
        standplaatsStatus,
        geconstateerd, documentdatum, documentnummer, voorkomenidentificatie, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid,
        tijdstipregistratie, eindregistratie, tijdstipinactief, tijdstipregistratielv, tijdstipeindregistratielv,
        tijdstipinactieflv, tijdstipnietbaglv, geovlak
    FROM  standplaats) sta
WHERE nevenadres IS NOT NULL;

-- select identificatie, nevenadres, hoofdadres,typeadresseerbaarobject, begindatumTijdvakGeldigheid, einddatumTijdvakGeldigheid from adresseerbaarobjectnevenadres;

 with params: None
2021-04-26 12:34:54,610 dboutput INFO executed SQL, rowcount=-1
2021-04-26 12:34:54,610 fileinput INFO Read/parse for start for file=sql/create-views.sql....
2021-04-26 12:34:54,616 fileinput INFO Read/parse ok for file=sql/create-views.sql
2021-04-26 12:34:54,616 dboutput INFO executing SQL
2021-04-26 12:34:54,616 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:54,629 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:54,633 postgis ERROR error column "begindatumtijdvakgeldigheid" does not exist
LINE 18:       beginDatumTijdvakGeldigheid <= now()
               ^
 in query: -- Views voor BAG tabellen
-- BAG Objecten kunnen niet-actueel of zelfs niet bestaand (beeindigd) zijn
-- Via Views kunnen actuele en bestaande objecten uitgefilterd worden.
-- Author: Just van den Broecke

-- Feitelijk is de "acteel" definitie:
-- begingeldigheid <= now()
--  AND (eindgeldigheid is NULL OR eindgeldigheid >= now())
--  AND (tijdstipinactief is NULL)
--  AND (tijdstipnietbaglv is NULL)

-- SET search_path TO test,public;
-- LIG
DROP VIEW IF EXISTS ligplaatsactueel;
CREATE VIEW ligplaatsactueel AS
    SELECT * FROM ligplaats
    WHERE
      beginDatumTijdvakGeldigheid <= now()
      AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
      AND aanduidingrecordinactief is FALSE;

DROP VIEW IF EXISTS ligplaatsactueelbestaand;
CREATE VIEW ligplaatsactueelbestaand AS
    SELECT * FROM ligplaats
    WHERE
        beginDatumTijdvakGeldigheid <= now()
        AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
        AND aanduidingrecordinactief is FALSE
        AND ligplaatsStatus <> 'Plaats ingetrokken'::ligplaatsStatus;

-- NUM
DROP VIEW IF EXISTS nummeraanduidingactueel;
CREATE VIEW nummeraanduidingactueel AS
    SELECT *
    FROM nummeraanduiding
    WHERE
      beginDatumTijdvakGeldigheid <= now()
      AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
      AND aanduidingrecordinactief is FALSE;

DROP VIEW IF EXISTS nummeraanduidingactueelbestaand;
CREATE VIEW nummeraanduidingactueelbestaand AS
    SELECT * FROM nummeraanduiding
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE
    AND nummeraanduidingStatus <> 'Naamgeving ingetrokken'::nummeraanduidingStatus;

-- OPR
DROP VIEW IF EXISTS openbareruimteactueel;
CREATE VIEW openbareruimteactueel AS
    SELECT * FROM openbareruimte
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE;

DROP VIEW IF EXISTS openbareruimteactueelbestaand;
CREATE VIEW openbareruimteactueelbestaand AS
    SELECT * FROM openbareruimte
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE
    AND openbareruimteStatus <> 'Naamgeving ingetrokken'::openbareRuimteStatus;

-- PND
DROP VIEW IF EXISTS pandactueel;
CREATE VIEW pandactueel AS
    SELECT * FROM pand
    WHERE
      beginDatumTijdvakGeldigheid <= now()
      AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
      AND aanduidingrecordinactief is FALSE 
      AND pand.geom_valid = TRUE;

DROP VIEW IF EXISTS pandactueelbestaand;
CREATE VIEW pandactueelbestaand AS
    SELECT * FROM pand
    WHERE
     beginDatumTijdvakGeldigheid <= now()
     AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
     AND aanduidingrecordinactief is FALSE
     AND (pandStatus <> 'Niet gerealiseerd pand'::pandStatus
     AND pandStatus <> 'Pand gesloopt'::pandStatus
     AND pandStatus <> 'Bouwvergunning verleend'::pandStatus
     AND pandStatus <> 'Pand ten onrechte opgevoerd'::pandStatus )
     AND pand.geom_valid = TRUE;

-- STA
DROP VIEW IF EXISTS standplaatsactueel;
CREATE VIEW standplaatsactueel AS
    SELECT * FROM standplaats
    WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE;

DROP VIEW IF EXISTS standplaatsactueelbestaand;
CREATE VIEW standplaatsactueelbestaand AS
    SELECT * FROM standplaats
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE
    AND standplaatsStatus <> 'Plaats ingetrokken'::standplaatsStatus;

-- VBO
DROP VIEW IF EXISTS verblijfsobjectactueel;
CREATE VIEW verblijfsobjectactueel AS
    SELECT * FROM verblijfsobject
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE;

DROP VIEW IF EXISTS verblijfsobjectactueelbestaand;
CREATE VIEW verblijfsobjectactueelbestaand AS
    SELECT * FROM verblijfsobject
    WHERE
      beginDatumTijdvakGeldigheid <= now()
      AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
      AND aanduidingrecordinactief is FALSE
      AND (verblijfsobjectStatus <> 'Niet gerealiseerd verblijfsobject'::verblijfsobjectStatus
      AND verblijfsobjectStatus  <> 'Verblijfsobject ingetrokken'::verblijfsobjectStatus
      AND verblijfsobjectStatus  <> 'Verblijfsobject ten onrechte opgevoerd'::verblijfsobjectStatus);

-- JvdB removed AND status  <> 'Verblijfsobject gevormd', see issue #173
-- https://github.com/nlextract/NLExtract/issues/173  23.3.16
--

-- WPL
DROP VIEW IF EXISTS woonplaatsactueel;
CREATE VIEW woonplaatsactueel AS
  SELECT * FROM woonplaats
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE;

DROP VIEW IF EXISTS woonplaatsactueelbestaand;
CREATE VIEW woonplaatsactueelbestaand AS
  SELECT * FROM woonplaats
  WHERE
    beginDatumTijdvakGeldigheid <= now()
    AND (eindDatumTijdvakGeldigheid is NULL OR eindDatumTijdvakGeldigheid >= now())
    AND aanduidingrecordinactief is FALSE
    AND woonplaatsStatus  <> 'Woonplaats ingetrokken'::woonplaatsStatus;

-- KOPPELTABELLEN

DROP VIEW IF EXISTS gemeente_woonplaatsactueelbestaand;
CREATE VIEW gemeente_woonplaatsactueelbestaand AS
    SELECT  gw.gid,
            gw.beginDatumTijdvakGeldigheid,
            gw.eindDatumTijdvakGeldigheid,
            gw.woonplaatscode,
            gw.gemeentecode,
            gw.status
    FROM gemeente_woonplaats as gw
  WHERE
    gw.beginDatumTijdvakGeldigheid <= now()
    AND (gw.eindDatumTijdvakGeldigheid is NULL OR gw.eindDatumTijdvakGeldigheid >= now())
    AND gw.status = 'definitief';

DROP VIEW IF EXISTS provincie_gemeenteactueelbestaand;
CREATE VIEW provincie_gemeenteactueelbestaand AS
    SELECT  pg.gid,
            pg.provinciecode,
            pg.provincienaam,
            pg.gemeentecode,
            pg.gemeentenaam,
            pg.begindatum,
            pg.einddatum
    FROM provincie_gemeente AS pg
  WHERE
    pg.begindatum <= LOCALTIMESTAMP
    AND (pg.einddatum IS NULL OR pg.einddatum >= LOCALTIMESTAMP);

-- START RELATIE TABELLEN

DROP VIEW IF EXISTS adresseerbaarobjectnevenadresactueel;
CREATE VIEW adresseerbaarobjectnevenadresactueel AS
    SELECT *
    FROM adresseerbaarobjectnevenadres as aon
  WHERE
    aon.beginDatumTijdvakGeldigheid <= now()
    AND (aon.eindDatumTijdvakGeldigheid is NULL OR aon.eindDatumTijdvakGeldigheid >= now())
    AND (aon.tijdstipinactief is NULL OR aon.tijdstipinactief >= now());

DROP VIEW IF EXISTS adresseerbaarobjectnevenadresactueelbestaand;
CREATE VIEW adresseerbaarobjectnevenadresactueelbestaand AS
    SELECT *
    FROM adresseerbaarobjectnevenadres as aon
  WHERE
    aon.beginDatumTijdvakGeldigheid <= now()
    AND (aon.eindDatumTijdvakGeldigheid is NULL OR aon.eindDatumTijdvakGeldigheid >= now())
    AND (aon.tijdstipinactief is NULL OR aon.tijdstipinactief >= now())
    AND ((aon.ligplaatsstatus <> 'Plaats ingetrokken' OR aon.ligplaatsstatus is NULL) AND
         (aon.standplaatsstatus <> 'Plaats ingetrokken' OR aon.standplaatsstatus is NULL) AND
         ((aon.verblijfsobjectStatus <> 'Niet gerealiseerd verblijfsobject' AND
           aon.verblijfsobjectStatus <> 'Verblijfsobject ingetrokken' AND
           aon.verblijfsobjectStatus <> 'Verblijfsobject ten onrechte opgevoerd') OR
          aon.verblijfsobjectStatus is NULL));

-- select identificatie, nevenadres, hoofdadres,typeadresseerbaarobject, beginDatumTijdvakGeldigheid, eindDatumTijdvakGeldigheid,verblijfsobjectStatus from adresseerbaarobjectnevenadresactueel;
-- select identificatie, nevenadres, hoofdadres,typeadresseerbaarobject, beginDatumTijdvakGeldigheid, eindDatumTijdvakGeldigheid,verblijfsobjectStatus from adresseerbaarobjectnevenadresactueelbestaand;

DROP VIEW IF EXISTS verblijfsobjectpandactueel;
CREATE VIEW verblijfsobjectpandactueel AS
    SELECT *
    FROM verblijfsobjectpand as vbop
  WHERE
    vbop.beginDatumTijdvakGeldigheid <= now()
    AND (vbop.eindDatumTijdvakGeldigheid is NULL OR vbop.eindDatumTijdvakGeldigheid >= now())
    AND (vbop.tijdstipinactief is NULL OR vbop.tijdstipinactief >= now());

DROP VIEW IF EXISTS verblijfsobjectpandactueelbestaand;
CREATE VIEW verblijfsobjectpandactueelbestaand AS
    SELECT *
    FROM verblijfsobjectpand as vbop
  WHERE
    vbop.beginDatumTijdvakGeldigheid <= now()
    AND (vbop.eindDatumTijdvakGeldigheid is NULL OR vbop.eindDatumTijdvakGeldigheid >= now())
    AND (vbop.tijdstipinactief is NULL OR vbop.tijdstipinactief >= now())
    AND ((vbop.verblijfsobjectStatus <> 'Niet gerealiseerd verblijfsobject' AND
          vbop.verblijfsobjectStatus <> 'Verblijfsobject ingetrokken' AND
         vbop.verblijfsobjectStatus <> 'Verblijfsobject ten onrechte opgevoerd') OR
         vbop.verblijfsobjectStatus is NULL);

DROP VIEW IF EXISTS verblijfsobjectgebruiksdoelactueel;
CREATE VIEW verblijfsobjectgebruiksdoelactueel AS
    SELECT *
    FROM verblijfsobjectgebruiksdoel as vog
  WHERE
    vog.beginDatumTijdvakGeldigheid <= now()
    AND (vog.eindDatumTijdvakGeldigheid is NULL OR vog.eindDatumTijdvakGeldigheid >= now())
    AND (vog.tijdstipinactief is NULL OR vog.tijdstipinactief >= now());

DROP VIEW IF EXISTS verblijfsobjectgebruiksdoelactueelbestaand;
CREATE VIEW verblijfsobjectgebruiksdoelactueelbestaand AS
    SELECT *
    FROM verblijfsobjectgebruiksdoel as vog
  WHERE
    vog.beginDatumTijdvakGeldigheid <= now()
    AND (vog.eindDatumTijdvakGeldigheid is NULL OR vog.eindDatumTijdvakGeldigheid >= now())
    AND (vog.tijdstipinactief is NULL OR vog.tijdstipinactief >= now())
    AND ((vog.verblijfsobjectStatus <> 'Niet gerealiseerd verblijfsobject' AND
          vog.verblijfsobjectStatus <> 'Verblijfsobject ingetrokken' AND
          vog.verblijfsobjectStatus <> 'Verblijfsobject ten onrechte opgevoerd') OR
         vog.verblijfsobjectStatus is NULL);

----------------------------------------------------------------------------------
-- Extra definitie voor GeoServer om om te gaan met VIEWs
----------------------------------------------------------------------------------
-- http://getsatisfaction.com/opengeo/topics/postgis_index_in_opengeo

-- Table: gt_pk_metadata
-- NOG NODIG???

DROP TABLE IF EXISTS gt_pk_metadata;

CREATE TABLE gt_pk_metadata
(
  table_schema character varying(32) NOT NULL,
  table_name character varying(32) NOT NULL,
  pk_column character varying(32) NOT NULL,
  pk_column_idx integer,
  pk_policy character varying(32),
  pk_sequence character varying(64),
  CONSTRAINT gt_pk_metadata_table_schema_key UNIQUE (table_schema, table_name, pk_column),
  CONSTRAINT gt_pk_metadata_pk_policy_check CHECK (pk_policy::text = ANY (ARRAY['sequence'::character varying::text, 'assigned'::character varying::text, 'autoincrement'::character varying::text]))
);

--NOTICE:  CREATE TABLE / UNIQUE will create implicit index "gt_pk_metadata_table_schema_key" for table "gt_pk_metadata"
--Vraag succesvol terug met leeg resultaat in 31 ms.

-- Insert record in view hulp tabel (example)
-- Naam schema waar view aanwezig is
-- Naam view
-- Naam primary key in the tabel
INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'ligplaatsactueel', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'ligplaatsactueelbestaand', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'standplaatsactueel', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'standplaatsactueelbestaand', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'verblijfplaatsactueel', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'verblijfplaatsactueelbestaand', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'woonplaatsactueel', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'woonplaatsactueelbestaand', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'pandactueel', 'gid', null, null, null);

INSERT INTO gt_pk_metadata(table_schema, table_name, pk_column, pk_column_idx, pk_policy, pk_sequence)
VALUES (current_schema(), 'pandactueelbestaand', 'gid', null, null, null);

INSERT INTO nlx_bag_log (actie, bestand) VALUES ('views aangemaakt', 'create-views.sql');
 with params: None
2021-04-26 12:34:54,633 dboutput INFO executed SQL, rowcount=-1
2021-04-26 12:34:54,633 fileinput INFO Read/parse for start for file=sql/create-indexes.sql....
2021-04-26 12:34:54,638 fileinput INFO Read/parse ok for file=sql/create-indexes.sql
2021-04-26 12:34:54,638 fileinput INFO all files done
2021-04-26 12:34:54,638 dboutput INFO executing SQL
2021-04-26 12:34:54,638 postgis INFO Connecting to dbname=bagv2 user=bas host=isis port=5432
2021-04-26 12:34:54,655 postgis DEBUG Connected to database bagv2
2021-04-26 12:34:54,697 postgis ERROR error column "geovlak" does not exist
 in query: -- Author: Just van den Broecke
-- SET search_path TO test,public;

--
-- INDEXEN
--

INSERT INTO nlx_bag_info (sleutel,waarde)
        VALUES ('start_indexing', to_char(current_timestamp, 'DD-Mon-IYYY HH24:MI:SS'));

-- Geometrie indexen
DROP INDEX IF EXISTS ligplaats_geom_idx CASCADE;
DROP INDEX IF EXISTS pand_geom_idx CASCADE;
DROP INDEX IF EXISTS standplaats_geom_idx CASCADE;
DROP INDEX IF EXISTS verblijfsobject_punt_idx CASCADE;
DROP INDEX IF EXISTS woonplaats_vlak_idx CASCADE;

CREATE INDEX ligplaats_geom_idx ON ligplaats USING gist (geovlak);
CREATE INDEX pand_geom_idx ON pand USING gist (geovlak);
CREATE INDEX standplaats_geom_idx ON standplaats USING gist (geovlak);
CREATE INDEX verblijfsobject_punt_idx ON verblijfsobject USING gist (geopunt);
CREATE INDEX woonplaats_vlak_idx ON woonplaats USING gist (geovlak);

-- Unieke key indexen
DROP INDEX IF EXISTS ligplaats_key CASCADE;
DROP INDEX IF EXISTS standplaats_key CASCADE;
DROP INDEX IF EXISTS verblijfsobject_key CASCADE;
DROP INDEX IF EXISTS pand_key CASCADE;
DROP INDEX IF EXISTS nummeraanduiding_key CASCADE;
DROP INDEX IF EXISTS openbareruimte_key CASCADE;
DROP INDEX IF EXISTS woonplaats_key CASCADE;

CREATE INDEX ligplaats_key ON ligplaats USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);
CREATE INDEX standplaats_key ON standplaats USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);
CREATE INDEX verblijfsobject_key ON verblijfsobject USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);
CREATE INDEX pand_key ON pand USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);
-- met nummeraanduiding lijkt een probleem als unieke index  (in de gaten houden)
CREATE INDEX nummeraanduiding_key ON nummeraanduiding USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);
CREATE INDEX openbareruimte_key ON openbareruimte USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);
CREATE INDEX woonplaats_key ON woonplaats USING btree (identificatie,voorkomenidentificatie,begindatumTijdvakGeldigheid);

-- Overige indexen
DROP INDEX IF EXISTS nummeraanduiding_postcode CASCADE;
DROP INDEX IF EXISTS openbareruimte_naam CASCADE;
DROP INDEX IF EXISTS woonplaats_naam CASCADE;
CREATE INDEX nummeraanduiding_postcode ON nummeraanduiding USING btree (postcode);
CREATE INDEX openbareruimte_naam ON openbareruimte USING btree (openbareruimtenaam );
CREATE INDEX woonplaats_naam ON woonplaats USING btree (woonplaatsNaam);

DROP INDEX IF EXISTS gem_wpl_woonplaatscode_idx CASCADE;
DROP INDEX IF EXISTS gem_wpl_gemeentecode_datum_idx CASCADE;
CREATE INDEX gem_wpl_woonplaatscode_idx ON gemeente_woonplaats USING btree (woonplaatscode);
CREATE INDEX gem_wpl_gemeentecode_datum_idx ON gemeente_woonplaats USING btree (gemeentecode);

DROP INDEX IF EXISTS prov_gem_gemeentecode_idx CASCADE;
CREATE INDEX prov_gem_gemeentecode_idx ON provincie_gemeente USING btree (gemeentecode);

-- Indexen relatie tabellen
DROP INDEX IF EXISTS verblijfsobjectpandkey CASCADE;
DROP INDEX IF EXISTS verblijfsobjectpand_pand CASCADE;
DROP INDEX IF EXISTS verblijfsobjectgebruiksdoelkey CASCADE;
CREATE INDEX verblijfsobjectpandkey ON verblijfsobjectpand USING btree (identificatie,voorkomenidentificatie, begindatumTijdvakGeldigheid, gerelateerdpand);
CREATE INDEX verblijfsobjectpand_pand ON verblijfsobjectpand USING btree (gerelateerdpand);
CREATE INDEX verblijfsobjectgebruiksdoelkey ON verblijfsobjectgebruiksdoel USING btree (identificatie,voorkomenidentificatie, begindatumTijdvakGeldigheid, gebruiksdoelverblijfsobject);

DROP INDEX IF EXISTS adresseerbaarobjectnevenadreskey CASCADE;
CREATE INDEX
        adresseerbaarobjectnevenadreskey ON adresseerbaarobjectnevenadres USING btree (identificatie,voorkomenidentificatie, begindatumTijdvakGeldigheid, nevenadres);

INSERT INTO nlx_bag_log (actie, bestand) VALUES ('end_indexing', 'create-indexes.sql');

INSERT INTO nlx_bag_info (sleutel,waarde)
        VALUES ('end_base_etl', to_char(current_timestamp, 'DD-Mon-IYYY HH24:MI:SS'));
 with params: None
2021-04-26 12:34:54,698 dboutput INFO executed SQL, rowcount=-1
2021-04-26 12:34:54,698 component INFO StringFileInput invokes=4 time(total, min, max, avg) = 0.179 0.005 0.163 0.045
2021-04-26 12:34:54,698 component INFO PostgresDbOutput invokes=4 time(total, min, max, avg) = 0.114 0.018 0.060 0.029
2021-04-26 12:34:54,698 chain INFO DONE - 4 rounds - chain=input_sql_post|output_postgres_sql 
2021-04-26 12:34:54,698 util INFO Timer end: total ETL time=17.0 sec
2021-04-26 12:34:54,698 ETL INFO ALL DONE
sebastic commented 3 years ago

Enige voordeel nu is dat de submodule een "gepinde" master-versie van Stetl heeft die zeker werkt en in NLExtract distributies/releases meekomt zodat je zeker bent dat geheel werk

Mijn ervaring met de BAGv2 support was dat het juist niet out-of-the-box werkt, zelfs met stetl uit git.

Robkromwijk commented 2 years ago

Ik heb https://github.com/nlextract/NLExtract/releases/tag/1.5.3 gedownload en in een virtual environment alle python afhankelijkheden met requirements.txt geïnstalleerd. Daarna laatste BAG-extract gedownload via https://service.pdok.nl/kadaster/adressen/atom/v1_0/downloads/lvbag-extract-nl.zip en uitgepakt. Dit zip-bestand bevat 11 zip-bestanden voor iedere BAG objectklasse en Leveringsdocument-BAG-Extract.xml

<?xml version="1.0" encoding="UTF-8"?>
<xb:BAG-Extract-Levering xmlns:xb="http://www.kadaster.nl/schemas/lvbag/extract-levering/v20200601" xmlns:selecties-extract="http://www.kadaster.nl/schemas/lvbag/extract-selecties/v20200601">
<xb:SelectieGegevens>
    <selecties-extract:LVC-Extract>
        <selecties-extract:StandTechnischeDatum>2022-03-08</selecties-extract:StandTechnischeDatum>
    </selecties-extract:LVC-Extract>
    <selecties-extract:Gebied-Registratief>
        <selecties-extract:Gebied-NLD/>
    </selecties-extract:Gebied-Registratief>
</xb:SelectieGegevens>
<xb:SchemaInfo>
    <xb:naam>BagvsExtractDeelbestandExtractLvc-2.1.0.xsd</xb:naam>
    <xb:versie>20200601</xb:versie>
</xb:SchemaInfo>
</xb:BAG-Extract-Levering>

Vervolgens de verwerking gestart met nlextract-1.5.3/bagv2/etl/etl.sh. Echter, ik krijg soortgelijke foutmelding als in deze thread, alleen bij mij gaat het over een empty file list.

2022-04-05 16:51:38,906 chain INFO Assembling Chain: input_bag_leveringsdoc_file|convert_vsi_to_etree_doc|transformer_xslt_leveringsdoc|output_ogr_postgis...
2022-04-05 16:51:38,906 input INFO cfg = {'class': 'stetl.inputs.fileinput.VsiZipFileInput', 'file_path': '/Users/robkromwijk/git/basisstatistiek_bronnen/data/bagnl/20220405/lvbag-extract.nl.zip', 'name_filter': 'Leveringsdocument-BAG-Extract.xml'}
2022-04-05 16:51:38,907 fileinput INFO file_list=[]
2022-04-05 16:51:38,907 factory ERROR cannot create object instance from class 'stetl.inputs.fileinput.VsiZipFileInput' e=File list is empty!!

Kan hetzelfde probleem de oorzaak zijn? Of is de inhoud van Leveringsdocument-BAG-Extract.xml niet goed?

Alvast bedankt voor het meedenken.

sebastic commented 2 years ago

De error lijkt er eerder op te wijzen dat er geen Leveringsdocument-BAG-Extract.xml bestand in /Users/robkromwijk/git/basisstatistiek_bronnen/data/bagnl/20220405/lvbag-extract.nl.zip zit zoals verwacht.

Dit is de lvbag-extract-nl.zip content van 2022-03-08:

$ unzip -l lvbag-extract-nl.zip 
Archive:  lvbag-extract-nl.zip
  Length      Date    Time    Name
---------  ---------- -----   ----
      788  2022-03-08 09:59   Leveringsdocument-BAG-Extract.xml
    73592  2022-03-08 09:59   GEM-WPL-RELATIE-08032022.zip
947782479  2022-03-08 09:56   9999VBO08032022.zip
 20231530  2022-03-08 09:57   9999WPL08032022.zip
1638903547  2022-03-08 09:57   9999PND08032022.zip
305036339  2022-03-08 09:59   9999NUM08032022.zip
   115296  2022-03-08 09:59   9999Inactief08032022.zip
 10651308  2022-03-08 09:59   9999OPR08032022.zip
110676974  2022-03-08 09:59   9999InOnderzoek08032022.zip
  1538886  2022-03-08 09:59   9999LIG08032022.zip
 16437385  2022-03-08 09:59   9999NietBag08032022.zip
  3445666  2022-03-08 09:59   9999STA08032022.zip
---------                     -------
3054893790                     12 files

De filename op jouw systeem is lvbag-extract.nl.zip ipv lvbag-extract-nl.zip wat een typo in de bag_input_file waarde suggereerd.

Robkromwijk commented 2 years ago

Wat suf. Dat is het inderdaad. Dank!

justb4 commented 3 months ago

@sebastic Kunnen we deze sluiten?

sebastic commented 3 months ago

De BAGv2 support werk inmiddels, ik heb nog wel een berg lokale changes om dat op mijn systeem te laten werken.

Dit issue open laten gaat daar geen verschil in maken.