Skip to content

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.

Missing JavaFX

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.

32-bit Java

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.

Envelope missing

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:

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).

or

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.

Building Type

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;-
...
It means that no information has been provided concerning the year of construction of the buildings.

The buildings with missing "yearOfConstruction" are filtered out in Physics Preprocessor.

Make backups!

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:

<bldg:lod2Solid>

with

<bldg:yearOfConstruction>2003</bldg:yearOfConstruction><bldg:lod2Solid>

and

<bldg:lod1Solid>

with

<bldg:yearOfConstruction>2003</bldg:yearOfConstruction><bldg:lod1Solid>

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.

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.

AccessDeniedException

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)
...

An 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 Program Files folder.
  • 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 Documents.

The program SimStadt itself can still be saved in a read-only location (e.g. Program Files).

java.lang.NoClassDefFoundError

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.

Either:

  • Run SimStadt from an extracted zip package
  • Add the workflows to the Build Path