You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardExpand all lines: docs/CHANGELOG.md
+2-1Lines changed: 2 additions & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -10,11 +10,12 @@ The list of changes is generated automatically based on the commit messages them
10
10
- See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
11
11
12
12
- The SimWrapper code repository containing the full commit history is on GitHub at <https://github.com/simwrapper/simwrapper>.
13
+
13
14
# Changelog
14
15
15
16
All notable changes to this project will be documented in this file. See [standard-version](https://github.com/conventional-changelog/standard-version) for commit guidelines.
16
17
17
-
## 4.0.0 (2025-06-10)
18
+
## 4.0.0 (2025-06-11)
18
19
19
20
Bump to version 4.0. New front page, file view, color scheme, event viewer (beta), map builder
20
21
(beta), and updated Python (pip) package for running standalone or in server environments.
There are many ways to connect SimWrapper to cloud storage, and we have worked with several agencies that had different needs and requirements. This page summarizes our findings from those implementations.
7
+
8
+
_This is work in progress, more to come_
9
+
10
+
## Internal file server
11
+
12
+
At VSP / TU Berlin, we have a huge on-premise file server for storing MATSim runs. The server runs Apache as a front-end, with Subversion managing updates. Subversion is old, yes, but it works very well with the enormous file sizes that MATSim produces (especially compared to "modern" solutions like Git).
13
+
14
+
With this setup, Apache/subversion provide a web front-end to the directory and file system. SimWrapper then can be configured to point to this as a base URL for its Data Source.
15
+
16
+
This approach has worked well since the inception of SimWrapper and continues as the primary file storage for VSP.
17
+
18
+
## SSHFS -- mount an SSH system
19
+
20
+
Also at VSP there is a supercompute "cluster" to which we only have SSH access.
21
+
22
+
Every desktop OS has a way to mount SSH files using something like "SSHFS", the SSH filesystem. Search on `SSHFS [your OS]` to find the right solution for your situation.
23
+
24
+
25
+
## AWS S3 / Microsoft Azure / Other Clouds
26
+
27
+
The many giant cloud providers all have some file storage solution under various marketing names. We spent a lot of time trying to connect to AWS S3 and Azure in particular; and while those solutions worked, they felt like a lot of extra effort for the big players, and then we hadn't addressed NextCloud or any of the other players.
28
+
29
+
And then we found [RClone.org](https://rclone.org/) which provides an open-source solution to mounting more than 70 different cloud providers' data storage as a local folder mount on your server/computer.
30
+
31
+
RClone has an "rclone mount" program which mounts file or "blob" storage _as if it is local_ but does not actually have to sync any files until you request them. It even allows partial file syncs, which is absolutely ideal for giant OMX/HDF5 files of multiple gigabytes in size (but which users generally only look at a small slice). Details such as cache size, number of threads, and timeouts are all configurable.
32
+
33
+
Not only does using RClone mean we can support ALL cloud service providers, but in practice it turned out to be faster an more reliable that the cloud vendors own file-mount products.
34
+
35
+
### Using Rclone
36
+
37
+
The short version is:
38
+
39
+
- Run `rclone config` to specify which cloud provider you want to connect to, and to provide all of the authentication details needed. This file can be encrypted, supports two-factor auth, and more. The authentication information is stored locally on your server. Each config can be named, such as `AZURE-MODEL-STORAGE`
40
+
- Then run `rclone mount` to mount a specific config to a folder of your choosing in your filesystem.
41
+
42
+
The mount command has many, many configuration options to optimize and experiment with here. The example below shows one set of parameters that worked well for us with Azure.
43
+
44
+
The mount can be set up as an autostart program using `systemd` on linux so that the storage even survives server reboots.
45
+
46
+
**Example rclone command**
47
+
```bash
48
+
rclone mount AZURE-MODEL-STORAGE: /mnt/azure \
49
+
--read-only \
50
+
--fast-list \
51
+
--no-modtime \
52
+
--vfs-cache-mode full \
53
+
--vfs-fast-fingerprint \
54
+
--vfs-cache-max-age 7d \
55
+
--vfs-cache-max-size 5G \
56
+
--vfs-read-chunk-size 1M \
57
+
--vfs-read-chunk-streams 16
58
+
```
59
+
60
+
We will add more details to this page as we get more experience with the various cloud vendors.
Copy file name to clipboardExpand all lines: docs/guide-dashboards.md
+1-1Lines changed: 1 addition & 1 deletion
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,6 +1,6 @@
1
1
---
2
2
id: guide-dashboards
3
-
title: 2. Dashboards in depth
3
+
title: Dashboards in depth
4
4
---
5
5
6
6
A dashboard is a page laid out with multiple charts, plots, and visualizations all together. You define the layout with a YAML configuration file which contains the types of plots and their configurations all in one place.
Copy file name to clipboardExpand all lines: docs/guide-getting-started.md
+32-21Lines changed: 32 additions & 21 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -1,44 +1,45 @@
1
1
---
2
2
id: guide-getting-started
3
-
title: 1. Getting started tutorial
3
+
title: Getting started tutorial
4
4
---
5
5
6
-
Welcome to SimWrapper! Let's get you up and running with the basics.
6
+
Welcome to SimWrapper! Let's get you up and running with the basics. This guide uses sample data that's hopefully a lot like the data you have for your projects
7
7
8
-
- This guide uses sample data that's hopefully a lot like the data you would have for your projects
9
-
- Use Google Chrome or MS Edge for the guide. Other browsers (Firefox, Safari) require a [separate local HTTP server](file-management) to access local files; for now that's just a stumbling block to getting started.
8
+
> ➡ Use a Chromium-based browser: **Chrome/Edge/Brave** and others, for this guide.<br/><br/>Other browsers (Firefox, Safari) can work, but require a [separate local HTTP server](file-management) to access local files on your computer. For now, that's just a stumbling block to getting started. Safari is a particularly bad browser for data visualization, since Apple doesn't support the latest APIs nor local file access, and Safari has the slowest Javascript engine! 🐳
10
9
11
10
## How it works: SimWrapper and file-based configuration
12
11
13
-
Most MATSim/ActivitySim outputs such as the `*.xml.gz` files are too large to open in a web browser, so SimWrapper provides a set of _visualization plugins_ which can display something useful for you. Plugins exist for lots of things and the list is growing: link volumes, agent animations, aggregate area summaries, and more.
12
+
Your transport simulation produces a lot of files for every run, some of them quite large! MATSim/ActivitySim outputs such as the `*.xml.gz` files are usually too big to open in a web browser. SimWrapper provides a set of _visualization plugins_ which load the raw data, or more often, load post-processed files which contain only the data that you wish to display. Plugins exist for lots of things and the list is growing: link volumes, agent animations, aggregate area summaries, and more.
14
13
15
-
Here's how it works: For every visualization you want to create, you write a small _configuration file_ and store it in the same folder as the inputs for that visualization. We use the YAML text format, which is a common configuration file format. For each properly named YAML file, one visualization thumbnail will appear in that folder when you navigate to the folder in SimWrapper. Clicking on the thumbnail will open that visualization full-screen.
14
+
On top of this, you can collect various visualizations into _dashboards_that you can lay out logically to help your users find the data they need.
16
15
17
-
Generally, a viz will require a specific set of inputs, and those inputs are usually the result of some _post-processing_ of the raw simulation outputs. It's up to you to do that post-processing and store the files in the same folder as your config file.
16
+
Here's how it works: For every visualization or dashboard you want to create, you write a small _configuration file_ and store it in the same folder as the inputs for that visualization. These configs are in the simple [YAML text format](https://yaml.org/) and SimWrapper looks for YAML files with specific names to learn what it should read and display (more on this below).
17
+
18
+
Generally, a viz will require a specific set of inputs, and those inputs are either raw simulation outputs or the result of some _post-processing_ of the outputs. It's up to you to do that post-processing and store the resulting files in the same folder as your YAML config files.
18
19
19
20
Let's get started with some sample data.
20
21
21
22
## 1. Get the sample data and open it in SimWrapper
22
23
23
24
- Download [simwrapper-example-project.zip](https://github.com/simwrapper/simwrapper-example-project/archive/refs/heads/main.zip) from GitHub
24
25
- Unzip the file somewhere you can find it easily - Desktop, home folder, etc.
25
-
- Go to [simwrapper.github.io](https://simwrapper.github.io/site) and click `Add folder...` and browse to the folder you just created. Grant access to the folder so the SimWrapper site can see the files!
26
-
- (If you are using Firefox, `cd` to the data folder and run `simwrapper here` to start the local HTTP server)
26
+
- Go to https://simwrapper.app and click `View local files...` and browse to the folder you just created. Grant access to the folder so the SimWrapper website can see the files!
27
+
- Click on the `data` folder. You will find dashboard examples and some raw data from a few MATSim runs.
28
+
29
+
If you are using Firefox, there is no "View local files" button. Instead `cd` to the data folder and run `simwrapper here` to start the local HTTP server. This requires first running `pip install simwrapper` to get the simwrapper command-line helper app. I suggest you use Chrome/Edge/Brave for this tutorial!
27
30
28
31
You should now see something similar to this:
29
32
30
33
<imgsrc="assets/example-folder.jpg"style="border: 1pxsolid#ccc"><i>Example data folder</i></img>
31
34
32
-
## 2. Explore the samples
33
-
34
35
Each of the subfolders in the example project shows different map views and capabilities of SimWrapper -- network link plots, statistical charts, area maps (shapefiles), dashboards, and so on.
35
36
36
-
- Experiment with the various knobs and configuration settings to see how the visualizations can be manipulated
37
-
- From your PC file browser, open up the `viz-*.yaml`files in each subfolder to see how each of the visualizations is defined in a readable text format.
37
+
- Experiment with the various knobs and configuration settings in the visualizations to see how they can be manipulated
38
+
- From your PC file explorer / Finder, find the YAML text files named`viz-*.yaml` in each subfolder to see how each of the visualizations is defined in a clear, readable text format.
38
39
- Every visualization type has a different filename "prefix" to help you find them: e.g, `viz-map-*.yaml` are for shapefiles, `viz-link-*.yaml` are for MATSim network plots, and so on.
39
-
-You can edit these YAML files, save, and click Reload on your browser to see how your changes affect the visualizations.
40
+
-Try making a copy and editing these YAML files. Save and click `Reload` on your browser to see how your changes affect the visualizations.
40
41
41
-
## 3. Create a dashboard with some charts
42
+
## 2. Create a dashboard with some charts
42
43
43
44
The dashboards subfolder shows how you can combine multiple visualizations into cohesive dashboards.
44
45
@@ -49,17 +50,29 @@ See the [Dashboards in Depth](guide-dashboards) article to learn more about buil
49
50
50
51
## 4. Configuring dashboard templates for multiple run folders
51
52
52
-
In SimWrapper, everything is folder-based. So `viz-*.yaml` and `dashboard-*.yaml` files in a folder will automatically be detected and loaded based on their filenames.
53
+
In SimWrapper, everything is file- and folder-based. So `viz-*.yaml` and `dashboard-*.yaml` files in a folder will automatically be detected and loaded, based on their filenames.
53
54
54
55
If you want to define dashboards that will be used for **multiple folders**, such as several runs for a particular project:
55
56
56
-
-**Create a folder** named `simwrapper` in the parent project directory.
57
+
-**Create a folder** named `simwrapper`or `.simwrapper`in the parent project directory.
57
58
- Move all dashboard, viz, and template YAMLs into that folder
58
59
- Tweak any file paths as necessary, so that relative file names resolve properly.
59
60
- The base folder for a dashboard is the _folder you are viewing_, not the dashboard template folder.
60
-
- You can have multiple `simwrapper` folders all the way up your folder hierarchy; dashboard panels will be generated based on filename, and each found dashboard will be displayed as a tab on the folder view.
61
+
- You can have multiple `simwrapper` folders all the way up your folder hierarchy; dashboard panels will be generated based on filename, and each found dashboard will be displayed as a tab on the dashboard.
62
+
63
+
## 5. More on YAML filenames
61
64
62
-
## 5. More details on visualizations and their YAML files
65
+
SimWrapper looks in your folder for YAML files that follow specific naming conventions. That way, it won't try to read unrelated YAML files that you might have. But this means you must name your configuration files carefully! SimWrapper will **silently ignore all YAML files** that do not match these conventions:
66
+
67
+
-**`dashboard-*.yaml`** - these contain the configuration settings for dashboard panes. Each found file results in a left-side tab on the dashboard page, and that tab contains the dashboard contents specified in this file. For this reason, many users tend to number their dashboard configs so that the tabs always appear in a predictable order: `dashboard-1-summary.yaml`, `dashboard-2-mode-choice.yaml`, `dashboard-3-traffic.yaml` and so on.
68
+
-**`viz-*.yaml`** - these contain individual map-based visualizations. Each of these will appear on the Files tab of a folder.
69
+
- Each visualization plugin has a specific subname that must follow `viz-subname-...` in the filename: for example, the shapefile viewer would be `viz-map-*.yaml` while the xy-hexagon viewer is `viz-xy-*.yaml`. See the API reference for each plugin for examples.
70
+
- Use these `viz-*` configs if you don't have the need to collate multiple vizes into dashboards, or if you want single visualizations to have their own URL that you can link to directly.
71
+
-**`simwrapper-config.yaml`** - is a special top-level configuration for project sites that is described in detail on [Building a project site](guide-project-sites).
72
+
73
+
Note that in most cases, both `.yaml` and `.yml` file extensions are valid and honored.
74
+
75
+
## 6. Example roadway links visualization
63
76
64
77
Here is an example YAML config file for a link-volume summary:
65
78
@@ -80,8 +93,6 @@ If you wanted to look at several different link volume plots from the same model
80
93
81
94
This is a very different paradigm than most "point and click" GIS tools, but we have found that the ability to script and cut/paste the config files has been a huge time saver and also reduces manual errors.
82
95
83
-
> Make sure that your files are allowed to be "world-readable" before you publish anything to public-svn! Once files are pushed to public-svn, they are not secured in any way; anyone on the internet can access them!
84
-
85
96
### Visualization types
86
97
87
98
Each visualization is described in the API Reference section of this documentation, including how to post-process your outputs if necessary, and how to define any configuration settings for your visualizations.
0 commit comments