Repository Structure
Repository
A repository in SimStadt is the root folder in which you collect and save all your projects and CityGML files.
An example repository can be downloaded here.
It contains all your models, your simulation parameters and the results. Those files are usually distributed in separate projects:
You will have to select a repository folder the first time you launch SimStadt.
You can select another folder by clicking on Change Repository in the GUI:
Project
A project is a sub-folder inside a repository.
The folder name must end with .proj
, e.g. Stuttgart.proj
or NYC-Manhattan.proj
.
It contains CityGML files. You are free to distribute the 3D models in as many projects as you wish.
Workflows will also be saved by SimStadt in the project folder.
You can select a project in the GUI:
CityGML
CityGML is an open standardised data model and exchange format to store digital 3D models of cities and landscapes. It defines ways to describe most of the common 3D features and objects found in cities (such as buildings, roads, rivers, bridges, vegetation and city furniture) and the relationships between them.
SimStadt needs a CityGML file as an input for every workflow. CityGML are expected to end with .gml
extension. Internally, they are written in XML.
Level of Detail
The CityGML file should have either :
- Level of Detail 1 (LOD1, extruded 3D geometry, with flat roofs)
- Level of Detail 2 (LOD2, 3D geometry with detailed roof shape)
Coordinate Reference System
The CityGML file should be georeferenced with a valid coordinate reference system, e.g. EPSG:32632
or EPSG:31467
.
The coordinate reference system (CRS) is usually specified in the header of the CityGML file, or for each building:
<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>
SimStadt uses this information in order to convert the local coordinates into latitude and longitude, for example for WeatherProcessor.
Workflow
The goal of a workflow is to define a complete simulation from start (a CityGML file) to finish (results files, diagrams or a modified CityGML file).
A workflow is a sequence of workflowsteps.
Examples of workflows are:
- Heat Demand Analysis, which estimates the current heat demand of buildings.
- Photovoltaic Potential Analysis, which estimates how many photovoltaic panels could be installed on the roofs, and how much yield they would produce on average per year.
Workflows are saved in ***.step
folders inside the project folders.
Workflowstep
A workflowstep is a single unit of simulation, with one specific goal, e.g.:
- importing a CityGML file.
- getting weather data for the location
- or calculating the heat demand of the buildings.
Workflowsteps are typically chained together in order to form a workflow.
Workflowsteps are written in Java, like the rest of the SimStadt structure.
It is possible to write new workflowsteps in Java, even without having access to the complete SimStadt sourcecode.
Accessing workflowstep folder directly
Workflowsteps are saved in nested ***.step
folders inside the workflow folder. This structure can lead to very long paths, (e.g. TestRepository\Test.proj\b.step\a.step\a.step\a.step\a.step\a.step\a.step
). In order to avoid clicking many times in the Explorer in order to access the desired folder, you can select the desired workflowstep in the GUI, and then right-click on Workflow Step tab and selecting Open containing folder
.
Cache
Some calculations (e.g. IrradianceProcessor) can take a long time to run. In order to speed up the next calculations done on the same CityGML file, results are stored in cache.
It is a hidden .cache
folder inside the repository (e.g. TestRepositoryWithCache\.cache
), containing information about weather, irradiance or street layout.
It can be deleted without concern, but the next simulations might take longer than usual.
There are also project specific cache folders (e.g. TestRepository\Gruenbuehl.proj\.cache
), for shadow calculations with SRA_Perez.