orbisgis / geoclimate

Geospatial processing toolbox for environmental and climate studies
GNU Lesser General Public License v3.0
59 stars 16 forks source link

Geoclimate with BD TOPO V2.2 error with bad roads' width still not resolved #737

Closed sfaraut closed 1 year ago

sfaraut commented 2 years ago

Hello everybody,

It seems that Geoclimate with BD TOPO V2.2 error with bad roads' width (zero value) described in:

Error running Geoclimate with BDTOPO V2.2 [Windows] #582 https://github.com/orbisgis/geoclimate/issues/582

which has been theorically solved in 0.0.1 (ticket closed), is still not resolved in latest 0.0.2-SNAPSHOT version (and nightly version at this time)!

Had same error "Cannot compute the closest minimum distance to a road at 100 meters." with BDTOPO V2.2 data downloaded on IGN servers. The only solution is to force all "zero" value for attribute "LARGEUR" in ROUTE.shp shapefile to another not null value (for example 1). In my case it was for data of all department 31 (BDTOPO_2-2_TOUSTHEMES_SHP_LAMB93_D031_2018-09-25) . I then select the specific zone with defining "id_zones" in config file.

By the way, the other attribute "NB_VOIES" is also set to 0 but there are no processsing errors even in this case.

Thanks for any solution.

j3r3m1 commented 2 years ago

Hi @sfaraut Thanks for reporting. I am not sure I get everything. You have a territory with an error ? Can you give us the configuration file you used and the id of the zone you have used ?

ebocher commented 2 years ago

Hi @sfaraut I have tested the BDTopo workflow (from the current master version 0.0.2-SNAPSHOT) on Aigrefeuille. Below the result (LCZ and roads with a random color for width attribute). There is no error on my side. All indicators are computed. Note : OS Linux, JAVA 11 Best

aigrefeuille

ebocher commented 2 years ago

@ELSW56 Is it possible to test on your Windows OS ?

sfaraut commented 2 years ago

Hi! I'm already using Windows (and JAVA 11). and tried to process original BDTOPO V2.2 data downloaded from IGN , for all Department 31, but only on Toulouse commune itself (id_zone: 31255). My config file were:

{
    "description": "Processing BD Topo v2 data",
     "input": {"bdtopo_v2": {
        "folder": {"path": "C:\\DATA\\IGN-DATA\\BDTOPO_2-2_TOUSTHEMES_SHP_LAMB93_D031_2018-09-25",
                   "id_zones":["31555"]}

        }
    },
    "output": {
        "folder": "C:\\Users\\faraut\\Documents\\DEVELOPPEMENT\\Geoclimate\\TEMP-RESULTS"    
    },
    "parameters": {        "rsu_indicators": {
            "indicatorUse": [
                "LCZ",
                "TEB",
                "UTRF"
            ],
            "svfSimplified": true,
            "estimateHeight": true
        },
        "grid_indicators": {
            "x_size": 100,
        "y_size": 100,
        "rowCol": false,
        "output" : "geojson",
        "indicators" :[
                 "BUILDING_FRACTION", 
                 "BUILDING_HEIGHT", 
                 "WATER_FRACTION",
                 "VEGETATION_FRACTION", 
                 "ROAD_FRACTION", 
                 "IMPERVIOUS_FRACTION", 
                 "LCZ_FRACTION"
             ]
        }
     }
}

and got the errors:

**C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>"C:\Program Files\Java\jdk-11.0.13\bin\java.exe" -jar geoclimate-0.0.2-SNAPSHOT.jar -f my_first_try_BDTOPO_Toulouse-id_zone.json -w BDTOPO_V2.2**
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
Starting to process insee id_zone 31555
Unable to find table PISTE_AERODROME
Unable to find table RESERVOIR
The  BD Topo data have been imported
Formating the BDTOPO data
The BD Topo data have been formated
BDTOPO V2 GIS layers formated
Start computing the geoindicators...
Create the units of analysis...
Loading graph into memory...
    0.226 seconds
Calculating connected components...
    0.073 seconds
Storing node connected components...
    0.384 seconds
Storing edge connected components...
    1.79 seconds
Start computing building indicators...
Error while executing the process.
org.h2.jdbc.JdbcSQLNonTransientException: Exception lors de l'appel de la fonction dÚfinie par l'utilisateur: "buffer(LINESTRING (569345.5 6271945.4, 569345.4 6271945.3, 569344.9 6271944.3, 569343.7 6271942.4, 569342.4 6271940, 569340.7 6271936.9, 569338.7 6271933.5, 569336.5 6271929.7, 569334.2 6271925.6, 569329.9 6271918.2, 569328.6 6271914.3, 569328.9 6271910.4, 569329.7 6271906.9, 569329.9 6271903.9, 569330.1 6271902.1, 569329.2 6271894.9), null, 'endcap=flat'): null"
Exception calling user-defined function: "buffer(LINESTRING (569345.5 6271945.4, 569345.4 6271945.3, 569344.9 6271944.3, 569343.7 6271942.4, 569342.4 6271940, 569340.7 6271936.9, 569338.7 6271933.5, 569336.5 6271929.7, 569334.2 6271925.6, 569329.9 6271918.2, 569328.6 6271914.3, 569328.9 6271910.4, 569329.7 6271906.9, 569329.9 6271903.9, 569330.1 6271902.1, 569329.2 6271894.9), null, 'endcap=flat'): null"; SQL statement:

                CREATE TABLE road_surf_127cf94a_5e65_4a4b_aa81_7fcc9fddf203 AS
                    SELECT ST_BUFFER(the_geom, width::DOUBLE PRECISION/2,'endcap=flat') AS the_geom
                    FROM ROAD; [90105-206]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:573) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:496) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.message.DbException.get(DbException.java:216) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.message.DbException.convertInvocation(DbException.java:443) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:508) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.schema.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:345) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.expression.function.JavaFunction.getValue(JavaFunction.java:40) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.expression.Alias.getValue(Alias.java:37) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.command.query.Select$LazyResultQueryFlat.fetchNextRow(Select.java:1833) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.result.LazyResult.hasNext(LazyResult.java:78) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.h2.result.FetchedResult.next(FetchedResult.java:34) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
...
        at picocli.CommandLine.execute(CommandLine.java:2078) [geoclimate-0.0.2-SNAPSHOT.jar:?]
        at picocli.CommandLine$execute.call(Unknown Source) [geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47) [geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) [geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139) [geoclimate-0.0.2-SNAPSHOT.jar:?]
        at org.orbisgis.geoclimate.Geoclimate.main(Geoclimate.groovy:103) [geoclimate-0.0.2-SNAPSHOT.jar:?]
Caused by: java.lang.NullPointerException
        at org.h2gis.functions.spatial.buffer.ST_Buffer.buffer(ST_Buffer.java:125) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
        at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
        at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
        at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
        at org.h2.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:495) ~[geoclimate-0.0.2-SNAPSHOT.jar:?]
        ... 200 more
Cannot compute the closest minimum distance to a road at 100 meters.
Cannot compute the building indicators
Cannot build the geoindicators
Cannot build the geoindicators for the zone 31555
ZONE_a0ad41e1_37ab_458d_b59a_b785327cd296 has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\zones.geojson.
BUILDING has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\building.geojson.
ROAD has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\road.geojson.
RAIL has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\rail.geojson.
HYDRO has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\water.geojson.
VEGET has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\vegetation.geojson.
IMPERVIOUS has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\impervious.geojson.
grid_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\grid_indicators.geojson.
31555 has been processed
The BDTOPO_V2.2 workflow has been successfully executed

C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>

until I replaced all "zero value" for road's "LARGEUR" attribute value by something else (1) in a new shapefile copies.

With the new shapefiles (*), and by replacing the path in config file:

    "input": {"bdtopo_v2": {
        "folder": {"path": "C:\\DATA\\IGN-DATA\\BDTOPO_2-2_RGF93_D031_2018-09-25-converted",
                   "id_zones":["31555"]
                   }
        }

I got no errors:

 C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>"C:\Program Files\Java\jdk-11.0.13\bin\java.exe" -jar geoclimate-0.0.2-SNAPSHOT.jar -f my_first_try_BDTOPO_Toulouse-id_zone.json -w BDTOPO_V2.2
WARNING: sun.reflect.Reflection.getCallerClass is not supported. This will impact performance.
Starting to process insee id_zone 31555
Unable to find table PISTE_AERODROME
Unable to find table RESERVOIR
The  BD Topo data have been imported
Formating the BDTOPO data
The BD Topo data have been formated
BDTOPO V2 GIS layers formated
Start computing the geoindicators...
Create the units of analysis...
Loading graph into memory...
    0.218 seconds
Calculating connected components...
    0.077 seconds
Storing node connected components...
    0.375 seconds
Storing edge connected components...
    1.771 seconds
Start computing building indicators...
Start computing block indicators...
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by org.codehaus.groovy.vmplugin.v9.Java9 (file:/C:/Users/faraut/Documents/DEVELOPPEMENT/Geoclimate/geoclimate-0.0.2-SNAPSHOT.jar) to field java.util.ArrayList.size
WARNING: Please consider reporting this to the maintainers of org.codehaus.groovy.vmplugin.v9.Java9
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release
Start computing RSU indicators...
Processing urban typology surface fraction calculation
Processing LCZ surface fraction indicators calculation
Geoindicators calculation time: 482.621 s
All geoindicators have been computed
 The LCZ classification is performed
 The URBAN TYPOLOGY classification is performed
building_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\building_indicators.geojson.
block_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\block_indicators.geojson.
rsu_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\rsu_indicators.geojson.
RSU_LCZ has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\rsu_lcz.geojson.
ZONE_d7e1866f_ab77_4b1f_bdbe_d3ed4530660f has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\zones.geojson.
BUILDING has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\building.geojson.
ROAD has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\road.geojson.
RAIL has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\rail.geojson.
HYDRO has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\water.geojson.
VEGET has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\vegetation.geojson.
IMPERVIOUS has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\impervious.geojson.
URBAN_TYPO_RSU_AREA has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\rsu_urban_typo_area.geojson.
URBAN_TYPO_RSU_FLOOR_AREA has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\rsu_urban_typo_floor_area.geojson.
URBAN_TYPO_BUILDING has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\building_urban_typo.geojson.
grid_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_31555\grid_indicators.geojson.
31555 has been processed
The BDTOPO_V2.2 workflow has been successfully executed

C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>

There are many roads in center of Toulouse with zero witdh as opposed to the small commune Aigrefeuille (near my home !). I hope I have exposed the problem right.

Regards;

Serge Faraut.

(*) There is another problem with new BDTOPO V2.2 shapefiles. There are not in "true" RGF93/Lambert93 projection but "IGNF:LAMB93 - RGF93 Lambert 93" as reported by QGIS (wiew previous report https://github.com/orbisgis/geoclimate/issues/617). That's why I tried to reproject them (script based on ogr2ogr) even if they should be equivalent (?). But the error is only resolved by changing road's width.....

sfaraut commented 2 years ago

Hi!

Some new informations concerning the error "Cannot compute the closest minimum distance to a road at 100 meters" and a way to reproduice it easyly...

I found that the two Geoclimate SNAPSHOT Nightly version 0.0.2 downloaded in January 2022 that I used were in fact a 0.1 version (!?)...

"C:\Program Files\Java\jdk-11.0.13\bin\java.exe" -jar geoclimate-0.0.2-SNAPSHOT.jar  -f my_first_try_BDTOPO_12174-0.0.2.json -w BDTOPO_V2.2  -V
0.1

All version downloaded later (in May) are (real) versions 0.0.2! Today Nightly version give:

C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>"C:\Program Files\Java\jdk-11.0.13\bin\java.exe" -jar geoclimate-0.0.2-SNAPSHOT-2022-05-18.jar -f my_first_try_BDTOPO_12174-0.0.2.json -w BDTOPO_V2.2  -V
0.0.2

With these later versions 0.0.2, even when using Nightly version of Geoclimate 0.0.2 SNAPSHOT downloaded today (on 2022-05-18), the error on roads happens on the sample BDTOPO data "sample_12174" (from GitHub repository). ! These "sample_12174" road file contains 918 zero values for road's width...

My config file:

{
    "description": "Processing BD Topo v2 data",
    "output": {
        "folder": "C:\\Users\\faraut\\Documents\\DEVELOPPEMENT\\Geoclimate\\TEMP-RESULTS"    
    },
    "parameters": {        "rsu_indicators": {
            "indicatorUse": [
                "LCZ",
                "TEB",
                "UTRF"
            ],
            "svfSimplified": true,
            "estimateHeight": true
        },
        "grid_indicators": {
            "x_size": 100,
        "y_size": 100,
        "rowCol": false,
        "output" : "geojson",
        "indicators" :[
                 "BUILDING_FRACTION", 
                 "BUILDING_HEIGHT", 
                 "WATER_FRACTION",
                 "VEGETATION_FRACTION", 
                 "ROAD_FRACTION", 
                 "IMPERVIOUS_FRACTION", 
                 "LCZ_FRACTION"
             ]
        }
     },
    "input": { 
    "folder": {"path": "C:\\Users\\faraut\\Documents\\DEVELOPPEMENT\\Geoclimate\\BD_TOPO_v2\\sample_12174",
                   "locations": [ "12174" ]}
    }
}

By the way, I found (because of errors at runtime) that "folder" configuration has changed between the first (wich was a 0.0.1 version) and the latest SNAPSHOT-0.0.2 version:

Here the trace execution resulting the roads width error:

C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>"C:\Program Files\Java\jdk-11.0.13\bin\java.exe" -jar geoclimate-0.0.2-SNAPSHOT-2022-05-18.jar -f my_first_try_BDTOPO_12174-0.0.2.json -w BDTOPO_V2.2
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - Starting to process insee id_zone 12174
[main] ERROR org.orbisgis.data.H2GIS - Unable to find table PISTE_AERODROME
[main] ERROR org.orbisgis.data.H2GIS - Unable to find table RESERVOIR
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - The  BD Topo data have been imported
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - Formating the BDTOPO data
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - The BD Topo data have been formated
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - BDTOPO V2 GIS layers formated
[main] INFO org.orbisgis.geoclimate.Geoindicators - Start computing the geoindicators...
[main] INFO org.orbisgis.geoclimate.Geoindicators - Create the units of analysis...
[main] INFO gui.class org.h2gis.network.functions.GraphCreator - Loading graph into memory...
[main] INFO gui.class org.h2gis.network.functions.GraphCreator -     0.012 seconds
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents - Calculating connected components...
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents -     0.004 seconds
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents - Storing node connected components...
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents -     0.014 seconds
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents - Storing edge connected components...
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents -     0.056 seconds
[main] INFO org.orbisgis.geoclimate.Geoindicators - Start computing building indicators...
[main] ERROR org.orbisgis.process.Process - Error while executing the process.
org.h2.jdbc.JdbcSQLNonTransientException: Exception lors de l'appel de la fonction définie par l'utilisateur: "buffer(LINESTRING (663464.4 6362216.9, 663455.2 6362206.8, 663451.4 6362202.4, 663447.3 6362199.2, 663438.9 6362193.1, 663431.3 6362188.5, 663427.4 6362185.7), null, 'endcap=flat'): null"
Exception calling user-defined function: "buffer(LINESTRING (663464.4 6362216.9, 663455.2 6362206.8, 663451.4 6362202.4, 663447.3 6362199.2, 663438.9 6362193.1, 663431.3 6362188.5, 663427.4 6362185.7), null, 'endcap=flat'): null"; SQL statement:
CREATE TABLE road_surf_01d56cfe_b373_4bff_9aee_640ce795d2d7 AS
                    SELECT ST_BUFFER(the_geom, width::DOUBLE PRECISION/2,'endcap=flat') AS the_geom
                    FROM ROAD [90105-212]
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:554)
        at org.h2.message.DbException.getJdbcSQLException(DbException.java:477)
        at org.h2.message.DbException.get(DbException.java:212)
        at org.h2.message.DbException.convertInvocation(DbException.java:424)
        at org.h2.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:508)
        at org.h2.schema.FunctionAlias$JavaMethod.getValue(FunctionAlias.java:345)
        at org.h2.expression.function.JavaFunction.getValue(JavaFunction.java:40)
        at org.h2.expression.Alias.getValue(Alias.java:37)
        at org.h2.command.query.Select$LazyResultQueryFlat.fetchNextRow(Select.java:1830)
        at org.h2.result.LazyResult.hasNext(LazyResult.java:78)
        at org.h2.result.FetchedResult.next(FetchedResult.java:34)
        at org.h2.command.query.Select.queryFlat(Select.java:728)
        at org.h2.command.query.Select.queryWithoutCache(Select.java:833)
        at org.h2.command.query.Query.queryWithoutCacheLazyCheck(Query.java:197)
        at org.h2.command.query.Query.query(Query.java:512)
        at org.h2.command.dml.Insert.insertRows(Insert.java:197)
        at org.h2.command.dml.Insert.update(Insert.java:135)
        at org.h2.command.dml.DataChangeStatement.update(DataChangeStatement.java:74)
        at org.h2.command.ddl.CreateTable.update(CreateTable.java:172)
        at org.h2.command.CommandContainer.update(CommandContainer.java:174)
        at org.h2.command.Command.executeUpdate(Command.java:252)
        at org.h2.command.CommandList.update(CommandList.java:65)
        at org.h2.command.CommandList.executeRemaining(CommandList.java:58)
        at org.h2.command.CommandList.update(CommandList.java:66)
        at org.h2.command.Command.executeUpdate(Command.java:252)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdateInternal(JdbcPreparedStatement.java:209)
        at org.h2.jdbc.JdbcPreparedStatement.executeUpdate(JdbcPreparedStatement.java:169)
        at org.h2.jdbc.JdbcCallableStatement.executeUpdate(JdbcCallableStatement.java:96)
        at groovy.sql.Sql.call(Sql.java:3068)
        at groovy.sql.Sql.call(Sql.java:3014)
        at groovy.sql.Sql$call$1.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.geoindicators.BuildingIndicators$_roadDistance_closure5$_closure19.doCall(BuildingIndicators.groovy:393)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at org.orbisgis.process.Process.execute(Process.java:300)
        at org.orbisgis.process.Process.call(Process.java:466)
        at jdk.internal.reflect.GeneratedMethodAccessor45.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
        at org.orbisgis.process.Process.invokeMethod(Process.java:416)
        at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.geoindicators.WorkflowGeoIndicators$_computeBuildingsIndicators_closure1$_closure10.doCall(WorkflowGeoIndicators.groovy:124)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at org.orbisgis.process.Process.execute(Process.java:300)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
        at org.orbisgis.process.Process.invokeMethod(Process.java:416)
        at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.geoindicators.WorkflowGeoIndicators$_computeGeoclimateIndicators_closure6$_closure27.doCall(WorkflowGeoIndicators.groovy:1572)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1149)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at org.orbisgis.process.Process.execute(Process.java:300)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
        at org.orbisgis.process.Process.invokeMethod(Process.java:416)
        at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.geoindicators.WorkflowGeoIndicators$_computeAllGeoIndicators_closure5$_closure20.doCall(WorkflowGeoIndicators.groovy:1460)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1149)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1149)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1149)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at org.orbisgis.process.Process.execute(Process.java:300)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
        at org.orbisgis.process.Process.invokeMethod(Process.java:416)
        at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.bdtopo_v2.WorkflowBDTopo_V2.bdtopo_processing(WorkflowBDTopo_V2.groovy:1420)
        at org.orbisgis.geoclimate.bdtopo_v2.WorkflowBDTopo_V2.bdtopo_processing(WorkflowBDTopo_V2.groovy)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
        at org.orbisgis.process.GroovyProcessFactory.invokeMethod(GroovyProcessFactory.java:112)
        at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at org.codehaus.groovy.runtime.metaclass.TransformMetaMethod.invoke(TransformMetaMethod.java:55)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass$1.invoke(ClosureMetaClass.java:215)
        at org.codehaus.groovy.runtime.metaclass.TransformMetaMethod.doMethodInvoke(TransformMetaMethod.java:62)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:362)
        at org.codehaus.groovy.runtime.callsite.PogoMetaClassSite.callCurrent(PogoMetaClassSite.java:61)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCallCurrent(CallSiteArray.java:51)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.callCurrent(AbstractCallSite.java:171)
        at org.orbisgis.geoclimate.bdtopo_v2.WorkflowBDTopo_V2$_workflow_closure1$_closure21$_closure24.doCall(WorkflowBDTopo_V2.groovy:339)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at groovy.lang.Closure.call(Closure.java:428)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2358)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2343)
        at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2384)
        at org.codehaus.groovy.runtime.dgm$202.invoke(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite$PojoMetaMethodSiteNoUnwrapNoCoerce.invoke(PojoMetaMethodSite.java:247)
        at org.codehaus.groovy.runtime.callsite.PojoMetaMethodSite.call(PojoMetaMethodSite.java:56)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.bdtopo_v2.WorkflowBDTopo_V2$_workflow_closure1$_closure21.doCall(WorkflowBDTopo_V2.groovy:338)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:274)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.Closure.call(Closure.java:412)
        at org.orbisgis.process.Process.execute(Process.java:300)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:107)
        at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:323)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1268)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1035)
        at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:819)
        at org.orbisgis.process.Process.invokeMethod(Process.java:416)
        at org.codehaus.groovy.runtime.callsite.PogoInterceptableSite.call(PogoInterceptableSite.java:45)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.Geoclimate.call(Geoclimate.groovy:83)
        at org.orbisgis.geoclimate.Geoclimate.call(Geoclimate.groovy)
        at picocli.CommandLine.executeUserObject(CommandLine.java:1953)
        at picocli.CommandLine.access$1300(CommandLine.java:145)
        at picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2358)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2352)
        at picocli.CommandLine$RunLast.handle(CommandLine.java:2314)
        at picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2179)
        at picocli.CommandLine$RunLast.execute(CommandLine.java:2316)
        at picocli.CommandLine.execute(CommandLine.java:2078)
        at picocli.CommandLine$execute.call(Unknown Source)
        at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:47)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125)
        at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:139)
        at org.orbisgis.geoclimate.Geoclimate.main(Geoclimate.groovy:103)
Caused by: java.lang.NullPointerException
        at org.h2gis.functions.spatial.buffer.ST_Buffer.buffer(ST_Buffer.java:125)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.base/java.lang.reflect.Method.invoke(Method.java:566)
        at org.h2.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:495)
        ... 220 more
[main] INFO org.orbisgis.geoclimate.Geoindicators - Cannot compute the closest minimum distance to a road at 100 meters.
[main] ERROR org.orbisgis.geoclimate.Geoindicators - Cannot compute the building indicators
[main] ERROR org.orbisgis.geoclimate.Geoindicators - Cannot build the geoindicators
[main] ERROR org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - Cannot build the geoindicators for the zone 12174
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - ZONE_299e04f9_e21d_4495_94a1_50b29e3286f9 has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\zones.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - BUILDING has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\building.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - ROAD has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\road.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - RAIL has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\rail.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - HYDRO has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\water.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - VEGET has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\vegetation.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - IMPERVIOUS has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\impervious.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - grid_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\grid_indicators.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - 12174 has been processed
The BDTOPO_V2.2 workflow has been successfully executed

Error "Cannot compute the closest minimum distance to a road at 100 meters." occured!

And after correcting zero value for LARGEUR attribute (for all 918 entries) in the ROUTE.shp attribute table (with value=1), and re-save the table , in QGIS (v3.16):

C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate>"C:\Program Files\Java\jdk-11.0.13\bin\java.exe" -jar geoclimate-0.0.2-SNAPSHOT-2022-05-18.jar -f my_first_try_BDTOPO_12174-0.0.2.json -w BDTOPO_V2.2
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - Starting to process insee id_zone 12174
[main] ERROR org.orbisgis.data.H2GIS - Unable to find table PISTE_AERODROME
[main] ERROR org.orbisgis.data.H2GIS - Unable to find table RESERVOIR
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - The  BD Topo data have been imported
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - Formating the BDTOPO data
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - The BD Topo data have been formated
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - BDTOPO V2 GIS layers formated
[main] INFO org.orbisgis.geoclimate.Geoindicators - Start computing the geoindicators...
[main] INFO org.orbisgis.geoclimate.Geoindicators - Create the units of analysis...
[main] INFO gui.class org.h2gis.network.functions.GraphCreator - Loading graph into memory...
[main] INFO gui.class org.h2gis.network.functions.GraphCreator -     0.013 seconds
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents - Calculating connected components...
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents -     0.005 seconds
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents - Storing node connected components...
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents -     0.014 seconds
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents - Storing edge connected components...
[main] INFO gui.class org.h2gis.network.functions.ST_ConnectedComponents -     0.069 seconds
[main] INFO org.orbisgis.geoclimate.Geoindicators - Start computing building indicators...
[main] INFO org.orbisgis.geoclimate.Geoindicators - Start computing block indicators...
[main] INFO org.orbisgis.geoclimate.Geoindicators - Start computing RSU indicators...
[main] INFO org.orbisgis.geoclimate.Geoindicators - Processing urban typology surface fraction calculation
[main] INFO org.orbisgis.geoclimate.Geoindicators - Processing LCZ surface fraction indicators calculation
[main] WARN org.orbisgis.geoclimate.Geoindicators -  The column pop doesn't exist or should be numeric
[main] INFO org.orbisgis.geoclimate.Geoindicators - Geoindicators calculation time: 11.29 s
[main] INFO org.orbisgis.geoclimate.Geoindicators - All geoindicators have been computed
[main] INFO org.orbisgis.geoclimate.Geoindicators -  The LCZ classification is performed
[main] INFO org.orbisgis.geoclimate.Geoindicators -  The URBAN TYPOLOGY classification is performed
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - building_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\building_indicators.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - block_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\block_indicators.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - rsu_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\rsu_indicators.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - RSU_LCZ has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\rsu_lcz.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - ZONE_87fa0304_5437_4e72_b183_87664876d41a has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\zones.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - BUILDING has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\building.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - ROAD has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\road.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - RAIL has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\rail.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - HYDRO has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\water.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - VEGET has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\vegetation.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - IMPERVIOUS has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\impervious.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - UTRF_RSU_AREA has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\rsu_utrf_area.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - UTRF_RSU_FLOOR_AREA has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\rsu_utrf_floor_area.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - UTRF_BUILDING has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\building_utrf.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - grid_indicators has been saved in C:\Users\faraut\Documents\DEVELOPPEMENT\Geoclimate\TEMP-RESULTS\bdtopo_v2_12174\grid_indicators.geojson.
[main] INFO org.orbisgis.geoclimate.bdtopo_v2.BDTopo_V2 - 12174 has been processed
The BDTOPO_V2.2 workflow has been successfully executed

All seems good!

Maybe the problem is simply resolved by the export in QGIS which correct data? Or could it be Windows platform problem? Test should be done with another platform....

Thank for any help!

Serge.

ebocher commented 2 years ago

The sample file you mention is used in the unit tests https://github.com/orbisgis/geoclimate/blob/master/bdtopo_v2/src/test/groovy/org/orbisgis/geoclimate/bdtopo_v2/WorkflowBDTopo_V2Test.groovy So I don't know what's happen on your side. Note that the zero value for LARGEUR attribute is already considered with the BDTopo formating process https://github.com/orbisgis/geoclimate/blob/master/bdtopo_v2/src/main/resources/org/orbisgis/geoclimate/bdtopo_v2/inputDataFormatting.sql#L129

Or could it be Windows platform problem? Test should be done with another platform....

@ELSW56 @j3r3m1 @franetibe we must find a way to test Windows OS

ebocher commented 2 years ago

After few hours of investigation, it seems that this is an encoding issue on H2 when SQL scripts are executed on Windows OS. e.g :

INSERT INTO $ROAD_BD_TOPO_TYPE VALUES(6, 'Route empierrée', 'ROUTE', null);

Special characters are not kept and because we use the text to find the best road width when the width is null then the geoclimate chain craches.

I'm on it to fix it