Most common problems
Wrong Java version
Launching: java -d64 -classpath lib/*:workflows/* -Xms512m -Xmx2g -Djava.util.logging.config.file=logging.properties eu.simstadt.desktop.SimStadtApp Unrecognized option: -d64 Error: Could not create the Java Virtual Machine. Error: A fatal exception has occurred. Program will exit.
SimStadt requires Java 8. See here.
SimStadt might be ported to newer Java versions in the future.
Launching: java -d64 -classpath lib/*:workflows/* -Xms512m -Xmx2g -Djava.util.logging.config.file=logging.properties eu.simstadt.desktop.SimStadtApp Error: Could not find or load main class eu.simstadt.desktop.SimStadtApp
SimStadt requires JavaFX libraries. See here.
Error: This Java instance does not support a 64-bit JVM.
This error message means that the installed Java version is 32-bit, but SimStadt requires 64-bit Java. See here.
Negative thermal boundary area above ground
======================== Summary ======================== Excluded 2 buildings from processing (reason: Negative thermal boundary area above ground.) ================ Excluded buildings lists =============== Excluded 2 buildings from processing (reason: Negative thermal boundary area above ground.) # GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID _Oberstadt4736_BD.3hed4aOE5j7UIYdXDgpD;2941.75;591.29;447818.78700;5536496.37450;- _Oberstadt4736_BD.wX8nkPR3sRSdqyVQfXHW;976.95;231.12;447725.63500;5536501.52650;-
This error was due to a buggy implementation in older versions. Many buildings were discarded from the simulation.
Updating to a newer version (September 2020) should help solve the problem.
SimStadt: development version (2020-12-15) java.lang.UnsupportedOperationException: Envelope missing in City GML model or it has no SRS name! at eu.simstadt.geo.GeoCoordinatesAccessor.<init>(GeoCoordinatesAccessor.java:124) at eu.simstadt.geo.GeoCoordinatesAccessor.coordinatesComputedFromBuildingsIfNeeded(GeoCoordinatesAccessor.java:68) at eu.simstadt.datamodel.SimStadtModel.coordinatesComputedFromBuildingsIfNeeded(SimStadtModel.java:82) ...
The coordinate reference system should be defined at the beginning of the CityGML file. For example:
<gml:boundedBy> <gml:Envelope srsName="EPSG:25832" srsDimension="3"> <gml:lowerCorner>512665.134 5403112.331 254.0</gml:lowerCorner> <gml:upperCorner>512698.044 5403161.657 265.315</gml:upperCorner> </gml:Envelope> </gml:boundedBy>
Unknown srsName format
SimStadt: development version (2020-12-15) java.lang.IllegalArgumentException: Unknown srsName format: IncorrectCRS:1234567 at eu.simstadt.geo.GeoUtils.crsFromSrsName(GeoUtils.java:94) at eu.simstadt.geo.GeoCoordinatesAccessor.<init>(GeoCoordinatesAccessor.java:97) at eu.simstadt.geo.GeoCoordinatesAccessor.coordinatesComputedFromBuildingsIfNeeded(GeoCoordinatesAccessor.java:55) at eu.simstadt.datamodel.SimStadtModel.coordinatesComputedFromBuildingsIfNeeded(SimStadtModel.java:82) ...
This error happens if the CityGML model contains an envelope, but with an incorrectly defined coordinate reference system.
The simplest format is "EPSG:" followed by a valid id:
"ESPG:31467"for DHDN / 3-degree Gauss-Kruger zone 3
"EPSG:32640"for WGS 84 / UTM zone 40N
"EPSG:32118"for NAD83 / New York Long Island
Incorrect EPSG id
Even if the envelope is correctly defined, with an existing coordinate reference system, the model might still not be correctly georeferenced.
For example, merely taking a German 3D model (e.g. with
EPSG:31467) and replacing the EPSG id with
ESPSG:32740 (UTM 40 S, for La Réunion) will not break the CityGML model. SimStadt will happily start the simulation, but with a 3D model located very far away from either Germany or La Réunion.
With some luck, some exception will occur (
java.lang.IllegalArgumentException: Monthly weather values don't seem to be plausible for this location. Cannot generate hourly values.) so that at least it should be clear that there is a problem somewhere.
But if you have changed the EPSG id and the simulation completes without exception, it might be worth it to look at the log in the console, searching for suspicious information:
INFORMATION: Nearest weather station in INSELDB is 'Perth / Australia' (2421,4 km).
INFORMATION: Nearest weather station in INSELDB is 'Hami / China' (27,4 km).
In that case, the coordinates would need to be transformed too, according to the EPSG ids.
RegionChooser could be helpful for debugging.
Empty CSV file
If Heat Demand Analysis runs until the last workflowstep, it means that:
- the geometry is correct
- the model is georeferenced
- weather data has been found for this location.
Still, the output CSV file can be empty.
Missing year of construction
If the log file looks like:
======================== Summary ======================== Excluded 927 buildings from processing (reason: Missing year of construction) ================ Excluded buildings lists =============== Excluded 927 buildings from processing (reason: Missing year of construction) # GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID UUID_Building_733_689925_217494;50,80;16,93;340217,93641;7689037,27931;- UUID_Building_767_561812_246917;302,66;100,89;340369,43699;7688845,44421;- ...
The buildings with missing "yearOfConstruction" are filtered out in Physics Preprocessor.
Feel free to modify the CityGML in a text editor, but please be sure to have backups of your data before you start.
A quick-and-dirty way to add a "yearOfConstruction" attribute to buildings (e.g. 2003) is to open the CityGML file in a text-editor, and replace:
For more complex examples,
inject_citygml_attributes.py or FME could be used.
Missing building function
If yearOfConstruction is defined for each building, Usage Preprocessor might still filters some building out if they do not have a building function (e.g. "residential" or "office"). See Usage Library Editor and AlkisCode.
======================== Summary ======================== Excluded 934 buildings from processing (reason: Missing building function) ================ Excluded buildings lists =============== Excluded 934 buildings from processing (reason: Missing building function) # GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID UUID_Building_236_9383_293477;182,55;60,85;340358,82959;7688757,69115;- UUID_Building_79_855748_199796;2433,61;270,40;339737,98619;7688615,64091;- ...
It is possible to either define
<bldg:function>1010</bldg:function> attribute in the CityGML file for the corresponding buildings, or simply select "Assume residential if unknown?" in Usage Preprocessor.
For more complex examples,
inject_citygml_attributes.py or FME could be used.
Heat Demand Analysis should be able to complete the simulation with this information.
Unknown ALKIS code
Even if a building function (e.g.
31001_1000) is defined inside the CityGML model, it might be unknown to SimStadt or Usage Library Editor.
======================== Summary ======================== Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3000.) Excluded 26 buildings from processing (reason: Unknown ALKIS code: 31001_2000.) Excluded 5 buildings from processing (reason: Unknown ALKIS code: 31001_9998.) Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3020.) Excluded 46 buildings from processing (reason: Unknown ALKIS code: 31001_1000.) Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3041.) ================ Excluded buildings lists =============== Excluded 1 buildings from processing (reason: Unknown ALKIS code: 31001_3000.) # GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID DEBY_LOD2_604881;2267.58;220.78;568080.14250;5517134.97850;- Excluded 26 buildings from processing (reason: Unknown ALKIS code: 31001_2000.) # GML ID [-];Volume [m3];Footprint area [m2];X [m];Y [m];Original ID DEBY_LOD2_605705;19.69;9.19;568338.96200;5517132.37700;- DEBY_LOD2_605662;97.81;38.89;568176.42100;5517187.76300;- ...
It is possible to define a translation table, written in an
AlkisCodes.xml file, located in the same folder as the CityGML file:
<?xml version="1.0" encoding="UTF-8"?> <codes xmlns:buLib="http://www.simstadt.eu/BuildingUsageLibraries" xmlns="http://www.simstadt.eu/AlkisCodes"> <codesForBuildingUsageLibraryNamed>Germany_DIN18599-10</codesForBuildingUsageLibraryNamed> <code from="31001_1000" to="1010"/> <code from="31001_1010" to="1010"/> ... <code from="31001_3242" to="3242"/> <code from="31001_3260" to="3260"/> <code from="31001_9701" to="9701"/> </codes>
The AlkisCode parameter can be activated in Usage Preprocessor, and the building functions should then be translated to known codes.
Only 1 building in model
If only one Building is found in the whole model, but the model looks fine otherwise (e.g. in Solar Potential Analysis), it means there might have been a problem during the export process. It can happen with SketchUp and GeoRES Plugin.
SimStadt: 0.10.0-SNAPSHOT (refactor, rev. a86aac1, 20201130) java.nio.file.AccessDeniedException: /home/ricou/Desktop/TestRepository/LaRéunion.proj/k.step at sun.nio.fs.UnixException.translateToIOException(UnixException.java:84) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:102) at sun.nio.fs.UnixException.rethrowAsIOException(UnixException.java:107) at sun.nio.fs.UnixFileSystemProvider.createDirectory(UnixFileSystemProvider.java:384) at java.nio.file.Files.createDirectory(Files.java:674) at java.nio.file.Files.createAndCheckIsDirectory(Files.java:781) at java.nio.file.Files.createDirectories(Files.java:767) ...
AccessDeniedException means that SimStadt tries to create or modify a file or folder, and is not allowed to do so. It might happen if the repository is located:
- on a read-only network share.
- in a
- in a folder owned by another user.
Solution: the Repository should be moved to a writable folder owned by the current user, e.g. on the Desktop or in
The program SimStadt itself can still be saved in a read-only location (e.g.
SimStadt: development version (2021-02-09) java.lang.NoClassDefFoundError: eu/simstadt/districtgraph/AutomaticDistrictHeating at de.hftstuttgart.simstadtworkflowsteps.energy.DistrictHeatingGenerator.lambda$0(DistrictHeatingGenerator.java:67) at java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:193) at java.util.stream.ReferencePipeline$11$1.accept(ReferencePipeline.java:440) ...
Some workflows might fail when SimStadt GUI is run from Eclipse, and if the corresponding projects have been added to the Classpath but not to the Build Path.
- Run SimStadt from an extracted zip package
- Add the workflows to the Build Path
CityGML file cannot be selected in SimStadt
Only files ending with
.gml can be imported in SimStadt.
On Windows, after a CityGML file has been edited in Notepad, it might get another extension (
.txt), so that the
model.gml file is actually saved as
model.gml.txt, but only displayed as
model.gml in File Explorer.
Since the file is now technically a
.txt file, it won't be possible to use it as a CityGML model in SimStadt.
In order to remove the unneeded
.txt, it might be necessary to first display the extensions (File Explorer > View tab > File name extensions). The complete filename is then displayed, and can be modified.
Simplified Radiosity Algorithm (SRA) might fail if the model is too large, or if not enough memory is available. Among other symptoms, the simulation might fail with
java.nio.file.FileSystemException The process cannot access the file because it is being used by another process.
In this case, it might help to split the CityGML model in smaller tiles, which can be done automatically by selecting
SRA_Perez_with_tiling in IrradianceProcessor.