orbisgis / geoclimate

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

Overlay input is mixed-dimension for BDTOPO_V3 code insee 69123 #933

Closed j3r3m1 closed 7 months ago

j3r3m1 commented 7 months ago

Thank you for your reply. I added the line "srid":2154 to my configuration file. It worked with some "communes" but not with all ... For example, it worked with the commune "69200", but with others, such as the commune "69123" it didn't work, I got the following message:

Exception lors de l'appel de la fonction définie par l'utilisateur: "intersection(GEOMETRYCOLLECTION (POLYGON ((842137.7 6515153.1, 842166.3999999997 6515153.1, 842165.6 6515152.3, 842167.1 6515150.7, 842163.9 6515148, 842165.2 6515146.6, 842162.5 6515144.2, 842164.8 6515141.6, 842166.9 6515139.3, 842168 6515138.1, 842159.4 6515130.3, 842158.3 6515131.5, 842156.2 6515133.9, 842156 6515133.8, 842151.8 6515138.5, 842150.9 6515137.6, 842147.1 6515134.3, 842137.7 6515125.857407407, 842137.7 6515153.1)), POINT (842137.7 6515123.1)), POLYGON ((842037.7 6515053.1, 842137.7 6515053.1, 842137.7 6515153.1, 842037.7 6515153.1, 842037.7 6515053.1))): Overlay input is mixed-dimension"; SQL statement: DROP TABLE IF EXISTS upper_table_join [90105-224]

How can I resolve this issue ?

Thanks again in advance,

Originally posted by @atoulou in https://github.com/orbisgis/geoclimate/discussions/931#discussioncomment-8367337

atoulou commented 7 months ago

It seems that this doesn't work for many communes in the Lyon metropolitan area. Of those I tested (because I need them), only one worked: 69142, and all the others didn't: 69266, 69123, 69199, 69029, 69259, 69152, 69142, 69202, 69256, 69034 and 69286

In case it takes a long time to solve the bug for all the communes, the ones I really need are 69123 and 69266.

As soon as you have an idea of how long it will take to solve the problem, please let me know.

Thank you in advance,

simogeo commented 7 months ago

Hi all, I have the same issue here with latest release of geoclimate (1.0.0). I've tested the script on commune 56185 and I'm using BD Topo v3.3 (BDTOPO_3-3_TOUSTHEMES_SHP_LAMB93_D056_2023-09-15).

I'll give a try with BDTOPO_3-0 and let you know

simogeo commented 7 months ago

Same issue with BD Topo V3.0 tested on 56185 and another municipality :

The BDTOPO_V3 workflow has been started.
Please wait...
11:18:38.956 [main] INFO GeoClimate -- Processing the commune with the code insee :  56121
11:18:38.960 [main] INFO GeoClimate -- The location 56121 is represented by 2 polygons
. GeoClimate will process each polygon individually.
11:18:38.963 [main] INFO GeoClimate -- Processing the polygon 1 on 2 
11:18:40.021 [main] INFO GeoClimate -- BDTOPO V2 GIS layers formated
11:18:40.036 [main] INFO GeoClimate -- Create the units of analysis...
11:18:40.211 [main] INFO GeoClimate -- Start computing the geoindicators...
11:18:40.213 [main] INFO GeoClimate -- Start computing building indicators...
11:18:40.300 [main] INFO GeoClimate -- Start computing block indicators...
11:18:40.407 [main] INFO GeoClimate -- Start computing RSU indicators...
11:18:40.455 [main] INFO GeoClimate -- Processing urban typology surface fraction calculation
11:18:40.458 [main] INFO GeoClimate -- Processing LCZ surface fraction indicators calculation
11:18:40.480 [main] WARN GeoClimate --  The column pop doesn't exist or should be numeric
11:18:40.663 [main] INFO GeoClimate -- Geoindicators calculation time: 0.254 s
11:18:40.664 [main] INFO GeoClimate -- Start computing Typology indicators...
11:18:40.668 [main] INFO GeoClimate --  The LCZ classification will be performed 
11:18:40.716 [main] INFO GeoClimate --  The URBAN TYPOLOGY classification is performed 
11:18:44.683 [main] INFO GeoClimate -- All geoindicators have been computed
11:18:44.690 [main] INFO GeoClimate -- 56121 has been processed
11:18:44.690 [main] INFO GeoClimate -- Processing the polygon 2 on 2 
11:18:54.712 [main] INFO GeoClimate -- BDTOPO V2 GIS layers formated
11:18:54.713 [main] INFO GeoClimate -- Create the units of analysis...
11:19:15.971 [main] INFO GeoClimate -- Start computing the geoindicators...
11:19:15.971 [main] INFO GeoClimate -- Start computing building indicators...
11:19:36.035 [main] INFO GeoClimate -- Start computing block indicators...
11:19:39.157 [main] INFO GeoClimate -- Start computing RSU indicators...
11:19:50.236 [main] INFO GeoClimate -- Processing urban typology surface fraction calculation
11:19:50.246 [main] INFO GeoClimate -- Processing LCZ surface fraction indicators calculation
11:19:50.545 [main] WARN GeoClimate --  The column pop doesn't exist or should be numeric
11:20:18.326 [main] INFO GeoClimate -- Geoindicators calculation time: 39.169 s
11:20:18.327 [main] INFO GeoClimate -- Start computing Typology indicators...
11:20:18.327 [main] INFO GeoClimate --  The LCZ classification will be performed 
11:20:18.660 [main] INFO GeoClimate --  The URBAN TYPOLOGY classification is performed 
11:20:33.331 [main] INFO GeoClimate -- All geoindicators have been computed
11:20:33.335 [main] INFO GeoClimate -- 56121 has been processed
11:20:44.194 [main] WARN GeoClimate --  The column pop doesn't exist or should be numeric
org.h2.jdbc.JdbcSQLNonTransientException: Exception lors de l'appel de la fonction définie par l'utilisateur: "intersection(GEOMETRYCOLLECTION (POLYGON ((221395.4 6756189.69047619, 221400.4 6756188.5, 221398.7 6756181.9, 221395.4 6756182.5, 221395.4 6756189.69047619)), POINT (221395.4 6756196.1)), POLYGON ((221295.4 6756165.9, 221395.4 6756165.9, 221395.4 6756265.9, 221295.4 6756265.9, 221295.4 6756165.9))): Overlay input is mixed-dimension"
Exception calling user-defined function: "intersection(GEOMETRYCOLLECTION (POLYGON ((221395.4 6756189.69047619, 221400.4 6756188.5, 221398.7 6756181.9, 221395.4 6756182.5, 221395.4 6756189.69047619)), POINT (221395.4 6756196.1)), POLYGON ((221295.4 6756165.9, 221395.4 6756165.9, 221395.4 6756265.9, 221295.4 6756265.9, 221295.4 6756165.9))): Overlay input is mixed-dimension"; SQL statement:

                              DROP TABLE IF EXISTS upper_table_join [90105-224]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:566)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
    at org.h2.message.DbException.get(DbException.java:212)
    at org.h2.message.DbException.convertInvocation(DbException.java:436)
    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.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:453)
    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:1851)
    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:520)
    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.insertAsData(CreateTable.java:199)
    at org.h2.command.ddl.CreateTable.update(CreateTable.java:157)
    at org.h2.command.CommandContainer.update(CommandContainer.java:169)
    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:256)
    at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:262)
    at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:231)
    at org.h2gis.utilities.wrapper.StatementWrapper.execute(StatementWrapper.java:109)
    at groovy.sql.Sql.execute(Sql.java:2368)
    at org.orbisgis.data.jdbc.JdbcDataSource.execute(JdbcDataSource.java:474)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.geoindicators.GenericIndicators.upperScaleAreaStatistics(GenericIndicators.groovy:976)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.geoindicators.WorkflowGeoIndicators.rasterizeIndicators(WorkflowGeoIndicators.groovy:1841)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.computeGridIndicators(AbstractBDTopoWorkflow.groovy:844)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.bdtopo_processing(AbstractBDTopoWorkflow.groovy:766)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.bdtopo_processing(AbstractBDTopoWorkflow.groovy)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:342)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow$_execute_closure1.doCall(AbstractBDTopoWorkflow.groovy:237)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008)
    at groovy.lang.Closure.call(Closure.java:433)
    at groovy.lang.Closure.call(Closure.java:422)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2389)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2374)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2427)
    at org.codehaus.groovy.runtime.dgm$209.doMethodInvoke(Unknown Source)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.execute(AbstractBDTopoWorkflow.groovy:231)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.BDTopo.v3(BDTopo.groovy:167)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.Geoclimate.call(Geoclimate.groovy:114)
    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 org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.Geoclimate.main(Geoclimate.groovy:134)
Caused by: java.lang.IllegalArgumentException: Overlay input is mixed-dimension
    at org.locationtech.jts.operation.overlayng.EdgeNodingBuilder.addGeometryCollection(EdgeNodingBuilder.java:247)
    at org.locationtech.jts.operation.overlayng.EdgeNodingBuilder.add(EdgeNodingBuilder.java:229)
    at org.locationtech.jts.operation.overlayng.EdgeNodingBuilder.build(EdgeNodingBuilder.java:163)
    at org.locationtech.jts.operation.overlayng.OverlayNG.nodeEdges(OverlayNG.java:541)
    at org.locationtech.jts.operation.overlayng.OverlayNG.computeEdgeOverlay(OverlayNG.java:495)
    at org.locationtech.jts.operation.overlayng.OverlayNG.getResult(OverlayNG.java:483)
    at org.locationtech.jts.operation.overlayng.OverlayNG.overlay(OverlayNG.java:248)
    at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlaySnapTol(OverlayNGRobust.java:274)
    at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlaySnapping(OverlayNGRobust.java:214)
    at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlaySnapTries(OverlayNGRobust.java:186)
    at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlay(OverlayNGRobust.java:153)
    at org.h2gis.functions.spatial.operators.ST_Intersection.intersection(ST_Intersection.java:64)
    at jdk.internal.reflect.GeneratedMethodAccessor23.invoke(Unknown Source)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.h2.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:495)
    ... 77 more
ebocher commented 7 months ago

I'm on it

simogeo commented 7 months ago

It seems the problem comes from gridded indicators generation, because I was able to generate rsu_indicators from BD_TOPO v3.3.

ebocher commented 7 months ago

Tested on current version 1.0.1-SNAPSHOT. BDTopo version : BDTOPO_3-0_TOUSTHEMES_SHP_LAMB93_D056_2022-09-15 Location : ["56185"] Here my config file

description" : "Example of configuration file to run the BDTopo workflow and store the results in a folder",
                "geoclimatedb": [
                        "folder": dirFile.absolutePath,
                        "name"  : "bdtopo_workflow_db;AUTO_SERVER=TRUE",
                        "delete": true
                ],
                "input"       : [
                        "folder"   : input_data,
                        "locations": locations,
                        "srid"     : 2154],
                "output"      : [
                        "folder": ["path": directory]],
                "parameters"  :
                        ["distance"       : 0,
                         rsu_indicators   : [
                                 "indicatorUse": ["LCZ"]
                         ]
                        ]
        ]

I'm not able to reproduce the error

geoms_pb

ebocher commented 7 months ago

It rocks also with the config file

[
                "description" : "Example of configuration file to run the BDTopo workflow and store the results in a folder",
                "geoclimatedb": [
                        "folder": dirFile.absolutePath,
                        "name"  : "bdtopo_workflow_db;AUTO_SERVER=TRUE",
                        "delete": true
                ],
                "input"       : [
                        "folder"   : input_data,
                        "locations": locations,
                        "srid"     : 2154],
                "output"      : [
                        "folder": ["path": directory]],
                "parameters"  :
                        ["distance"       : 0,
                         rsu_indicators   : [
                                 "indicatorUse": ["LCZ",  "UTRF",  "URBAN_TYPOLOGY"]
                         ],
                         "grid_indicators": [
                                 "x_size"    : 1000,
                                 "y_size"    : 1000,
                                 "indicators" :["BUILDING_FRACTION", "BUILDING_HEIGHT", "BUILDING_POP",
                                 "BUILDING_TYPE_FRACTION", "WATER_FRACTION", "VEGETATION_FRACTION",
                                 "ROAD_FRACTION", "IMPERVIOUS_FRACTION", "FREE_EXTERNAL_FACADE_DENSITY",
                                 "BUILDING_HEIGHT_WEIGHTED", "BUILDING_SURFACE_DENSITY",
                                 "SEA_LAND_FRACTION", "ASPECT_RATIO", "SVF",
                                 "HEIGHT_OF_ROUGHNESS_ELEMENTS", "TERRAIN_ROUGHNESS_CLASS",
                                 "UTRF_AREA_FRACTION", "UTRF_FLOOR_AREA_FRACTION",
                                 "LCZ_PRIMARY"]
                         ]
                        ]
        ]
ebocher commented 7 months ago

@atoulou @simogeo A PR has been send to fix this issue #934

atoulou commented 6 months ago

Hello, I'm sorry, but unfortunately this doesn't work for me.... In fact the tool works for the configuration file without the grid indicators part. The configuration file that works is :

{ "description" : "Example of configuration file to run the BDTopo workflow and store the results in a folder", "geoclimatedb": { "folder": "C:\Users\atoulou\Desktop\Geoclimate", "name" : "bdtopo_workflow_db;AUTO_SERVER=TRUE", "delete": true }, "input": { "folder":"C:\Users\atoulou\Desktop\Geoclimate\BDTOPO_3.0_69", "locations":["69123"], "srid":2154 }, "output" : { "folder": {"path": "C:\Users\atoulou\Desktop\Geoclimate\Resultats_BD_TOPO_bis"} }, "parameters" : {"distance" : 0, "rsu_indicators" : { "indicatorUse": ["LCZ", "UTRF", "URBAN_TYPOLOGY"] } } }

The configuration file that doesn't work is :

{ "description" : "Example of configuration file to run the BDTopo workflow and store the results in a folder", "geoclimatedb": { "folder": "C:\Users\atoulou\Desktop\Geoclimate", "name" : "bdtopo_workflow_db;AUTO_SERVER=TRUE", "delete": true }, "input": { "folder":"C:\Users\atoulou\Desktop\Geoclimate\BDTOPO_3.0_69", "locations":["69123"], "srid":2154 }, "output" : { "folder": {"path": "C:\Users\atoulou\Desktop\Geoclimate\Resultats_BD_TOPO"} }, "parameters" : {"distance" : 0, "rsu_indicators" : { "indicatorUse": ["LCZ", "UTRF", "URBAN_TYPOLOGY"] }, "grid_indicators": { "x_size" : 1000, "y_size" : 1000, "indicators" :["BUILDING_FRACTION", "BUILDING_HEIGHT", "BUILDING_POP", "BUILDING_TYPE_FRACTION", "WATER_FRACTION", "VEGETATION_FRACTION", "ROAD_FRACTION", "IMPERVIOUS_FRACTION", "FREE_EXTERNAL_FACADE_DENSITY", "BUILDING_HEIGHT_WEIGHTED", "BUILDING_SURFACE_DENSITY", "SEA_LAND_FRACTION", "ASPECT_RATIO", "SVF", "HEIGHT_OF_ROUGHNESS_ELEMENTS", "TERRAIN_ROUGHNESS_CLASS", "UTRF_AREA_FRACTION", "UTRF_FLOOR_AREA_FRACTION", "LCZ_PRIMARY"] } } }

For this one, I tested it with version 1.0.0 and with snapshot version 1.0.1 SNAPSHOT, as well as with BDTOPO 3.3 and BDTOPO3.0 and I still get the following error message (the same as before...):

org.h2.jdbc.JdbcSQLNonTransientException: Exception lors de l'appel de la fonction définie par l'utilisateur: "intersection(GEOMETRYCOLLECTION (POLYGON ((845892.0355932203 6515653.1, 845892.9 6515654.6, 845895.55 6515653.1, 845892.0355932203 6515653.1)), POINT (845903.8 6515653.1)), POLYGON ((845737.7 6514653.1, 846737.7 6514653.1, 846737.7 6515653.1, 845737.7 6515653.1, 845737.7 6514653.1))): Overlay input is mixed-dimension" Exception calling user-defined function: "intersection(GEOMETRYCOLLECTION (POLYGON ((845892.0355932203 6515653.1, 845892.9 6515654.6, 845895.55 6515653.1, 845892.0355932203 6515653.1)), POINT (845903.8 6515653.1)), POLYGON ((845737.7 6514653.1, 846737.7 6514653.1, 846737.7 6515653.1, 845737.7 6515653.1, 845737.7 6514653.1))): Overlay input is mixed-dimension"; SQL statement:

                          DROP TABLE IF EXISTS upper_table_join [90105-224]
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:566)
    at org.h2.message.DbException.getJdbcSQLException(DbException.java:489)
    at org.h2.message.DbException.get(DbException.java:212)
    at org.h2.message.DbException.convertInvocation(DbException.java:436)
    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.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:453)
    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:1851)
    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:520)
    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.insertAsData(CreateTable.java:199)
    at org.h2.command.ddl.CreateTable.update(CreateTable.java:157)
    at org.h2.command.CommandContainer.update(CommandContainer.java:169)
    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:256)
    at org.h2.jdbc.JdbcStatement.executeInternal(JdbcStatement.java:262)
    at org.h2.jdbc.JdbcStatement.execute(JdbcStatement.java:231)
    at org.h2gis.utilities.wrapper.StatementWrapper.execute(StatementWrapper.java:109)
    at groovy.sql.Sql.execute(Sql.java:2368)
    at org.orbisgis.data.jdbc.JdbcDataSource.execute(JdbcDataSource.java:474)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.geoindicators.GenericIndicators.upperScaleAreaStatistics(GenericIndicators.groovy:976)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.geoindicators.WorkflowGeoIndicators.rasterizeIndicators(WorkflowGeoIndicators.groovy:1841)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.computeGridIndicators(AbstractBDTopoWorkflow.groovy:844)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.bdtopo_processing(AbstractBDTopoWorkflow.groovy:741)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.bdtopo_processing(AbstractBDTopoWorkflow.groovy)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:342)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow$_execute_closure1.doCall(AbstractBDTopoWorkflow.groovy:237)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77)
    at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.base/java.lang.reflect.Method.invoke(Method.java:568)
    at org.codehaus.groovy.reflection.CachedMethod.invoke(CachedMethod.java:343)
    at groovy.lang.MetaMethod.doMethodInvoke(MetaMethod.java:328)
    at org.codehaus.groovy.runtime.metaclass.ClosureMetaClass.invokeMethod(ClosureMetaClass.java:279)
    at groovy.lang.MetaClassImpl.invokeMethod(MetaClassImpl.java:1008)
    at groovy.lang.Closure.call(Closure.java:433)
    at groovy.lang.Closure.call(Closure.java:422)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2389)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2374)
    at org.codehaus.groovy.runtime.DefaultGroovyMethods.each(DefaultGroovyMethods.java:2427)
    at org.codehaus.groovy.runtime.dgm$209.doMethodInvoke(Unknown Source)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.AbstractBDTopoWorkflow.execute(AbstractBDTopoWorkflow.groovy:231)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.bdtopo.BDTopo.v3(BDTopo.groovy:167)
    at org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.Geoclimate.call(Geoclimate.groovy:114)
    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 org.codehaus.groovy.vmplugin.v8.IndyInterface.fromCache(IndyInterface.java:321)
    at org.orbisgis.geoclimate.Geoclimate.main(Geoclimate.groovy:134)

Caused by: java.lang.IllegalArgumentException: Overlay input is mixed-dimension at org.locationtech.jts.operation.overlayng.EdgeNodingBuilder.addGeometryCollection(EdgeNodingBuilder.java:247) at org.locationtech.jts.operation.overlayng.EdgeNodingBuilder.add(EdgeNodingBuilder.java:229) at org.locationtech.jts.operation.overlayng.EdgeNodingBuilder.build(EdgeNodingBuilder.java:163) at org.locationtech.jts.operation.overlayng.OverlayNG.nodeEdges(OverlayNG.java:541) at org.locationtech.jts.operation.overlayng.OverlayNG.computeEdgeOverlay(OverlayNG.java:495) at org.locationtech.jts.operation.overlayng.OverlayNG.getResult(OverlayNG.java:483) at org.locationtech.jts.operation.overlayng.OverlayNG.overlay(OverlayNG.java:248) at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlaySnapTol(OverlayNGRobust.java:274) at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlaySnapping(OverlayNGRobust.java:214) at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlaySnapTries(OverlayNGRobust.java:186) at org.locationtech.jts.operation.overlayng.OverlayNGRobust.overlay(OverlayNGRobust.java:153) at org.h2gis.functions.spatial.operators.ST_Intersection.intersection(ST_Intersection.java:64) at jdk.internal.reflect.GeneratedMethodAccessor10.invoke(Unknown Source) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:568) at org.h2.schema.FunctionAlias$JavaMethod.execute(FunctionAlias.java:495) ... 77 more

What can I do ?

Thanks in advance for helping

j3r3m1 commented 6 months ago

Here is the json I have used with BDTopoV3 downloaded here.

{
    "description": "Processing BDT data",
    "input": {
        "area" : 10000,
    "srid": 2154,
        "folder": "/tmp/BDTOPO_3-3_TOUSTHEMES_SHP_LAMB93_D069_2023-09-15/",
        "locations": [
            "69123"
        ]
    },
    "output": {
        "folder": "/tmp"
    },
    "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", "BUILDING_POP",
                               "BUILDING_TYPE_FRACTION", "WATER_FRACTION", "VEGETATION_FRACTION",
                               "ROAD_FRACTION", "IMPERVIOUS_FRACTION",
                               "BUILDING_HEIGHT_WEIGHTED", "BUILDING_SURFACE_DENSITY", "ASPECT_RATIO", "SVF",
                               "HEIGHT_OF_ROUGHNESS_ELEMENTS", "TERRAIN_ROUGHNESS_CLASS",
                               "LCZ_PRIMARY"]
         }
    }
}

It worked super well !

j3r3m1 commented 6 months ago

@atoulou is this combination of config file, BDTopo data and GeoClimate version works for you ?

atoulou commented 6 months ago

Unfortunately not yet ... however I downloaded the Topo BD again from the link you provided to make sure I was using the right one, and copied exactly the text file you provided changing only the folder path for input and output, but I still get the same error message (with version 1.00 and the snashot version too)... so if it worked perfectly for you I don't understand where the problem could be coming from...

j3r3m1 commented 6 months ago

Yes this is super strange. Are you sure you are running the right jar when running GeoClimate ?

atoulou commented 6 months ago

I thought so but apparently not, I downloaded it again to be sure and now it works! I'm sorry for the inconvenience and thank you again for your help!

j3r3m1 commented 6 months ago

No worries. Good to hear that it is working now. Feel free to leave a message in our new discussion to better know our community of users: https://github.com/orbisgis/geoclimate/discussions/936