...
 
Commits (9)
# Build artifacts, log and preference files
#builds, log/preferences files
target/
*.out
*.preferences.xml
bin/
swing-inspector-linux-1.2.3/
target/
#Python
# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class
**/venv/
Tools/VadereAnalysisTools/VadereAnalysisTool/vadereanalysistool.egg-info/
Tools/VadereAnalysisTools/VadereAnalysisTool/build/
Tools/VadereAnalysisTools/VadereAnalysisTool/dist/
Tools/VadereAnalysisTools/VadereAnalysisTool/vadereanalysistool**/output
Tools/ContinuousIntegration/**/output
# C extensions
*.so
vadere_analysis_tool/build
vadereanalysistool/build
# IDEs
#Tools and build utils
bin/
#IntelliJ
.idea/
*.iml
#Eclipse
.settings/
.metadata/
.classpath
.project
# Package specific
#package specific
VadereGui/*.png
VadereGui/*.svg
VadereGui/*.mov
......@@ -26,20 +43,18 @@ VadereUtils/testreports/*.txt
VadereSimulator/resources/current_commit_hash.txt
VadereSimulator/testResources/**/*.legacy
# Python (byte-compiled, optimized, DLL files etc.)
__pycache__/
*.py[cod]
*$py.class
**/venv/
Tools/VadereAnalysisTools/VadereAnalysisTool/vadereanalysistool.egg-info/
Tools/VadereAnalysisTools/VadereAnalysisTool/build/
Tools/VadereAnalysisTools/VadereAnalysisTool/dist/
#Java runtime files generated with "jdeps" and "jlink"
java-runtime/*
# Operating system files
#model test output
VadereModelTests/**/output
VadereModelTests/*_private
VadereModelCalibration/**/output
VadereModelTests/**/legacy
VadereUtils/output/**
#mac osx files
.DS_Store
**/.directory
# Vadere output directories
**/output/
**/legacy/
**/*_private/
#linux files
**/.directory
......@@ -10,7 +10,7 @@
* The new scenario element can be selected in `TopographyCreator` via the "emergency exit" button.
* The new scenario element is also taken into account by `SettingsDialaog` and `TikzGenerator`.
- Configured 1-click-deployment in ".gitlab-ci.yml".
* In short: Vadere is packaged as a single ZIP file containing following build artifacts: README.md VadereModelTests/ VadereGui/target/vadere-gui.jar VadereSimulator/target/vadere-console.jar
* In short: Vadere is packaged as a single ZIP file containing following build artifacts: README.md VadereModelTests/ VadereGui/target/vadere.jar VadereSimulator/target/vadere-console.jar
* Vadere is packaged for GNU/Linux and Microsoft Windows.
* The ZIP file can be accessed on the website via: http://www.vadere.org/releases/
* The website's filesystem contains three subdirectories for releases:
......@@ -27,6 +27,7 @@
- Logging API did *not* change. Each log level has an additional String formater
method like `log.errorf("Erron in %s with value of x: %d","ClassA", 42)`
- issues closed: [issue#163](https://gitlab.lrz.de/vadere/vadere/issues/163)
- Added script "osm2vadere.py" to "Tools" folder, to convert OpenStreetMap maps to a Vadere topography. (929d4775: Tools).
- `VadereConsole`: Add option `--logname <filename>` to specify the name for the log file.
Please note that the log file `log.out` is always written (because this file is configured
......@@ -63,13 +64,10 @@
### Changed
- Renamed Vadere JAR files.
* vadere.jar -> vadere-gui.jar
* postvis.jar -> vadere-postvis.jar
* vadere-console.jar -> remained unchanged
- Migration to Java 11 (OpenJDK).
- Removed directory `Documentation/version-control` which contained the Git hooks. The Git hooks are not required anymore. Instead, added `git rev-parse HEAD` to file `VadereSimulator/pom.xml` to create `VadereSimulator/resources/current_commit_hash.txt` during each build via `mvn compile`.
**Note:** The file `current_commit_hash.txt` is created during Maven's validation phase, i.e., before the actual build.
**Note:** The file `current_commit_hash.txt` is created during Maven's validation phase, i.e., before the actual build.
- Migration to Java 11 (OpenJDK)
## v0.6 (2018-09-07)
......
......@@ -3,7 +3,6 @@ The java_migration branch has used the following steps to compile and run vadere
0. Ensure that JDK-11 and Git is set in the environment variables
1. Adjust the IDE (IntelliJ)
-> Make sure that you have the latest version of IntelliJ (in some older versions, Java 11 is not supported!)
1.1 Select File -> Settings -> Build, Execution, Deployment -> Compiler -> Java Compiler
1.1.1 Select 11 for "Project bytecode version"
1.1.2 Select 1.11 in "Per-module bytecode version" for each module
......
......@@ -8,7 +8,7 @@ from vadereanalysistool import SameSeedTrajectory
def run_scenario_files_with_vadere_console(project, number_of_runs=3, vadere_console="VadereSimulator/target/vadere-console.jar",
scenario_timeout_in_sec=12*60):
scenario_timeout_in_sec=60*9):
if not os.path.exists(vadere_console):
raise ValueError("vadere console could not be found at path: {}".format(os.path.abspath(vadere_console)))
......
......@@ -8,58 +8,16 @@
#
# python Tools/my_script.py
import argparse
import fnmatch
import os
import re
import shutil
import subprocess
import time
import argparse
long_timeout_in_seconds = 12 * 60
short_timeout_in_seconds = 2 * 60
def parse_command_line_arguments():
parser = argparse.ArgumentParser(description="Run all scenario files.")
parser.add_argument("--scenario", "-s", type=str, nargs="?", help="Run only the given scenario file and not all. E.g. \"VadereModelTests/TestOSM/scenarios/basic_2_density_discrete_ca.scenario\"")
args = parser.parse_args()
return args
def run_all():
long_running_scenarios = [
"basic_4_1_wall_gnm1",
"queueing",
"rimea_09",
"rimea_11",
"TestSFM",
"thin_wall_and_closer_source_nelder_mead_ok",
"thin_wall_and_closer_source_pso_could_fail",
"rimea_04_flow_osm1_550_up",
"stairs_diagonal_both_1_2_+1.scenario",
"05_bang_event_narrowed_street",
"06_bang_event_guimaraes_platz"
]
excluded_scenarios = ["TestOVM", "output", "legacy"]
excluded_scenarios.extend(long_running_scenarios)
scenario_files_regular_length = find_scenario_files(exclude_patterns=excluded_scenarios)
passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files_regular_length, scenario_timeout_in_sec=short_timeout_in_seconds)
for scenario in long_running_scenarios:
search_pattern = "*" + scenario + "*.scenario"
scenario_files_long = find_scenario_files(scenario_search_pattern=search_pattern)
tmp_passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files_long,
scenario_timeout_in_sec=long_timeout_in_seconds)
passed_and_failed_scenarios["passed"].extend(tmp_passed_and_failed_scenarios["passed"])
passed_and_failed_scenarios["failed"].extend(tmp_passed_and_failed_scenarios["failed"])
passed_and_failed_scenarios["failed_summary"].extend(tmp_passed_and_failed_scenarios["failed_summary"])
return passed_and_failed_scenarios
def find_scenario_files(path="VadereModelTests", scenario_search_pattern = "*.scenario", exclude_patterns = ["TestOVM", "output","legacy"]):
def find_scenario_files(path="VadereModelTests", scenario_search_pattern = "*.scenario", exclude_patterns = ["TESTOVM", "TestSpeedUp", "output","legacy"]):
scenario_files = []
for root, dirnames, filenames in os.walk(path):
......@@ -78,7 +36,7 @@ def find_scenario_files(path="VadereModelTests", scenario_search_pattern = "*.sc
return sorted(scenario_files)
def run_scenario_files_with_vadere_console(scenario_files, vadere_console="VadereSimulator/target/vadere-console.jar", scenario_timeout_in_sec=short_timeout_in_seconds):
def run_scenario_files_with_vadere_console(scenario_files, vadere_console="VadereSimulator/target/vadere-console.jar", scenario_timeout_in_sec=60):
output_dir = "output"
log_dir = "log_dir"
......@@ -99,11 +57,9 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
try:
print("Running scenario file ({}/{}): {}".format(i + 1, total_scenario_files, scenario_file))
scenario_name = os.path.basename(scenario_file).split('.')[0]
log_file = os.path.join(".", log_dir, scenario_name + ".log")
log_file = os.path.join(log_dir, scenario_name + ".log")
print(log_file)
# Measure wall time and not CPU time.
# Measure wall time and not CPU time simply because it is the simplest method.
wall_time_start = time.time()
# Use timout feature, check return value and capture stdout/stderr to a PIPE (use completed_process.stdout to get it).
......@@ -119,8 +75,9 @@ def run_scenario_files_with_vadere_console(scenario_files, vadere_console="Vader
wall_time_delta = wall_time_end - wall_time_start
print("Finished scenario file ({:.1f} s): {}".format(wall_time_delta, scenario_file))
passed_scenarios.append(scenario_file)
except subprocess.TimeoutExpired as exception:
print("Scenario file failed: {}".format(scenario_file))
print("-> Reason: timeout after {} s".format(exception.timeout))
......@@ -152,6 +109,7 @@ def read_first_error_linies(error_byte_string):
else:
return 'unknown error see vadere log file.'
def print_summary(passed_and_failed_scenarios):
total_passed_scenarios = len(passed_and_failed_scenarios["passed"])
total_failed_scenarios = + len(passed_and_failed_scenarios["failed"])
......@@ -159,9 +117,9 @@ def print_summary(passed_and_failed_scenarios):
faild_summary = passed_and_failed_scenarios["failed_summary"]
if len(faild_summary) > 0:
print("##################")
print("#################")
print("# Failed Summary #")
print("##################")
print("#################")
for line in faild_summary:
print(line)
......@@ -174,13 +132,49 @@ def print_summary(passed_and_failed_scenarios):
print("Passed: {}".format(total_passed_scenarios))
print("Failed: {}".format(total_failed_scenarios))
def run_all():
long_running_scenarios = [
"basic_4_1_wall_gnm1",
"queueing",
"rimea_09",
"rimea_11",
"TestSFM",
"thin_wall_and_closer_source_nelder_mead_ok",
"thin_wall_and_closer_source_pso_could_fail",
"rimea_04_flow_osm1_550_up",
"stairs_diagonal_both_1_2_+1.scenario",
"05_bang_event_narrowed_street",
"06_bang_event_guimaraes_platz"
]
excluded_scenarios = ["TESTOVM", "TestSpeedUp", "output", "legacy"]
excluded_scenarios.extend(long_running_scenarios)
scenario_files_regular_length = find_scenario_files(exclude_patterns=excluded_scenarios)
passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files_regular_length)
for scenario in long_running_scenarios:
search_pattern = "*" + scenario + "*.scenario"
scenario_files_long = find_scenario_files(scenario_search_pattern=search_pattern)
tmp_passed_and_failed_scenarios = run_scenario_files_with_vadere_console(scenario_files_long,
scenario_timeout_in_sec=540)
passed_and_failed_scenarios["passed"].extend(tmp_passed_and_failed_scenarios["passed"])
passed_and_failed_scenarios["failed"].extend(tmp_passed_and_failed_scenarios["failed"])
passed_and_failed_scenarios["failed_summary"].extend(tmp_passed_and_failed_scenarios["failed_summary"])
return passed_and_failed_scenarios
if __name__ == "__main__":
args = parse_command_line_arguments()
if args.scenario == None:
parser = argparse.ArgumentParser(description='Run ModelTest')
parser.add_argument('--scenario', '-s', nargs='?', default='', metavar='S', help='only run one selected scenario')
args = vars(parser.parse_args())
if args['scenario'] == '':
passed_and_failed_scenarios = run_all()
else:
passed_and_failed_scenarios = run_scenario_files_with_vadere_console([args.scenario])
passed_and_failed_scenarios = run_scenario_files_with_vadere_console([args['scenario']])
print_summary(passed_and_failed_scenarios)
......
......@@ -19,8 +19,7 @@
"def plotEvolution(vproject, ending, yval, ylabel):\n",
" plots = []\n",
" i = 1\n",
" rows = len(vproject.output_dirs);\n",
" plt.figure(1, figsize=(30, 10*rows))\n",
" plt.figure(1, figsize=(30, 10))\n",
" for outStr in project.output_dirs :\n",
" out = project.output_dirs[outStr]\n",
" dataFrames = []\n",
......@@ -35,7 +34,7 @@
" ndf['scenario'] = [out.scenario['name']] * len(df.density)\n",
" dataFrames.append(ndf)\n",
" #concatFrames = pd.concat(dataFrames)\n",
" plt.subplot(rows, 1, i)\n",
" plt.subplot(2, 1, i)\n",
" plt.title(out.scenario['name'])\n",
" plt.xlabel('timeStep')\n",
" plt.ylabel(ylabel)\n",
......@@ -52,18 +51,13 @@
" df = out.files[fileStr]()\n",
" ndf['density'] = df.density.astype(float)\n",
" ndf['velocity'] = df.velocity.astype(float)\n",
" ndf['timeStep'] = df.timeStep.astype(int)\n",
" ndf['scenario'] = [fileStr] * len(df.velocity)\n",
" #ndf = ndf[ndf.timeStep > 100]\n",
" #ndf = ndf[ndf.timeStep < 500]\n",
" ndf = ndf[ndf.density < 4]\n",
" ndf['scenario'] = [outStr] * len(df.velocity)\n",
" ndf = ndf[ndf.velocity > 0]\n",
" dataFrames.append(ndf)\n",
" concatFrames = pd.concat(dataFrames)\n",
" g = sns.relplot(x=\"density\", y=\"velocity\", hue=\"scenario\", data=concatFrames,\n",
" height=10, aspect=1)\n",
" g.set(xticks=[0,0.5,1,1.5,2,2.5,3,3.5,4], yticks=[0,0.5,1,1.5,2,2.5]);\n",
" g.savefig(\"./\"+vproject.project_name+\"_\"+ending+\"_fd\"+\".pdf\", bbox_inches='tight')\n",
" #axis = g.axes\n",
" #axes.set_xticks([0,1,2,3,4,5,6])\n",
" #axes.set_yticks([0,0.5,1,1.5,2,2.5])\n",
......@@ -91,11 +85,8 @@
" df = out.files[fileStr]()\n",
" ndf['density'] = df.density.astype(float)\n",
" ndf['velocity'] = df.velocity.astype(float)\n",
" ndf['timeStep'] = df.timeStep.astype(int)\n",
" ndf['scenario'] = [out.scenario['name']] * len(df.velocity)\n",
" ndf = ndf[ndf.density < 4]\n",
" #ndf = ndf[ndf.timeStep > 100]\n",
" #ndf = ndf[ndf.timeStep < 300]\n",
" #ndf = ndf[ndf.density < 7]\n",
" #plt.scatter()\n",
" #axes.set_title(out.scenario['name'])\n",
" axes.set_xlabel('density')\n",
......@@ -114,10 +105,10 @@
" axes.legend(['Weidmann', 'regression', 'Simulated data'])\n",
" index = index + 1;\n",
" if sep :\n",
" fig.savefig(\"./\"+out.scenario['name']+\"_\"+ending+\"_fd\"+\".pdf\", bbox_inches='tight')\n",
" fig.savefig(\"./\"+out.scenario['name']+\"_fundamental_diagram\"+\".png\", bbox_inches='tight')\n",
" plt.show()\n",
" if not sep :\n",
" fig.savefig(\"./\"+vproject.project_name+\"_\"+ending+\"_fd\"+\".pdf\", bbox_inches='tight')\n",
" fig.savefig(\"./\"+vproject.project_name+\"_fundamental_diagrams\"+\".png\", bbox_inches='tight')\n",
" "
]
},
......@@ -160,7 +151,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Method B Plots"
"## Method B Plots"
]
},
{
......@@ -223,12 +214,10 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [],
"source": [
"plotEvolution(project, \"aTimeStep.fundamentalDiagram\", 'density', 'density')"
"np.linspace(0, 200, num=201).tolist()"
]
},
{
......@@ -298,7 +287,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
"version": "3.6.5"
}
},
"nbformat": 4,
......
......@@ -307,7 +307,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
"version": "3.6.5"
}
},
"nbformat": 4,
......
......@@ -19,8 +19,7 @@
"def plotEvolution(vproject, ending, yval, ylabel):\n",
" plots = []\n",
" i = 1\n",
" rows = len(vproject.output_dirs);\n",
" plt.figure(1, figsize=(30, 10*rows))\n",
" plt.figure(1, figsize=(30, 10))\n",
" for outStr in project.output_dirs :\n",
" out = project.output_dirs[outStr]\n",
" dataFrames = []\n",
......@@ -35,7 +34,7 @@
" ndf['scenario'] = [out.scenario['name']] * len(df.density)\n",
" dataFrames.append(ndf)\n",
" #concatFrames = pd.concat(dataFrames)\n",
" plt.subplot(rows, 1, i)\n",
" plt.subplot(2, 1, i)\n",
" plt.title(out.scenario['name'])\n",
" plt.xlabel('timeStep')\n",
" plt.ylabel(ylabel)\n",
......@@ -52,18 +51,13 @@
" df = out.files[fileStr]()\n",
" ndf['density'] = df.density.astype(float)\n",
" ndf['velocity'] = df.velocity.astype(float)\n",
" ndf['timeStep'] = df.timeStep.astype(int)\n",
" ndf['scenario'] = [fileStr] * len(df.velocity)\n",
" #ndf = ndf[ndf.timeStep > 100]\n",
" #ndf = ndf[ndf.timeStep < 500]\n",
" ndf = ndf[ndf.density < 4]\n",
" ndf['scenario'] = [outStr] * len(df.velocity)\n",
" ndf = ndf[ndf.velocity > 0]\n",
" dataFrames.append(ndf)\n",
" concatFrames = pd.concat(dataFrames)\n",
" g = sns.relplot(x=\"density\", y=\"velocity\", hue=\"scenario\", data=concatFrames,\n",
" height=10, aspect=1)\n",
" g.set(xticks=[0,0.5,1,1.5,2,2.5,3,3.5,4], yticks=[0,0.5,1,1.5,2,2.5]);\n",
" g.savefig(\"./\"+vproject.project_name+\"_\"+ending+\"_fd\"+\".pdf\", bbox_inches='tight')\n",
" #axis = g.axes\n",
" #axes.set_xticks([0,1,2,3,4,5,6])\n",
" #axes.set_yticks([0,0.5,1,1.5,2,2.5])\n",
......@@ -91,11 +85,8 @@
" df = out.files[fileStr]()\n",
" ndf['density'] = df.density.astype(float)\n",
" ndf['velocity'] = df.velocity.astype(float)\n",
" ndf['timeStep'] = df.timeStep.astype(int)\n",
" ndf['scenario'] = [out.scenario['name']] * len(df.velocity)\n",
" ndf = ndf[ndf.density < 4]\n",
" #ndf = ndf[ndf.timeStep > 100]\n",
" #ndf = ndf[ndf.timeStep < 300]\n",
" #ndf = ndf[ndf.density < 7]\n",
" #plt.scatter()\n",
" #axes.set_title(out.scenario['name'])\n",
" axes.set_xlabel('density')\n",
......@@ -114,10 +105,10 @@
" axes.legend(['Weidmann', 'regression', 'Simulated data'])\n",
" index = index + 1;\n",
" if sep :\n",
" fig.savefig(\"./\"+out.scenario['name']+\"_\"+ending+\"_fd\"+\".pdf\", bbox_inches='tight')\n",
" fig.savefig(\"./\"+out.scenario['name']+\"_fundamental_diagram\"+\".png\", bbox_inches='tight')\n",
" plt.show()\n",
" if not sep :\n",
" fig.savefig(\"./\"+vproject.project_name+\"_\"+ending+\"_fd\"+\".pdf\", bbox_inches='tight')\n",
" fig.savefig(\"./\"+vproject.project_name+\"_fundamental_diagrams\"+\".png\", bbox_inches='tight')\n",
" "
]
},
......@@ -160,7 +151,7 @@
"cell_type": "markdown",
"metadata": {},
"source": [
"#### Method B Plots"
"## Method B Plots"
]
},
{
......@@ -223,12 +214,10 @@
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"scrolled": false
},
"metadata": {},
"outputs": [],
"source": [
"plotEvolution(project, \"aTimeStep.fundamentalDiagram\", 'density', 'density')"
"np.linspace(0, 200, num=201).tolist()"
]
},
{
......@@ -298,7 +287,7 @@
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.6.8"
"version": "3.6.5"
}
},
"nbformat": 4,
......
clear all; close all;
data = import('log.txt');
figure()
t = data(:,[2,4,6]);
t2 = data(:,[3,5,7]);
xlim( [min(t(:)), max(t(:))] );
ylim( [min(t2(:)), max(t2(:))] );
colors = colormap(lines);
for k = 1:length(data)
kk = data(k,1);
x1 = data(k,2);
y1 = data(k,3);
x2 = data(k,4);
y2 = data(k,5);
x3 = data(k,6);
y3 = data(k,7);
subplot(5,5,kk);
line([x1,x2], [y1, y2], 'Color', colors(kk,:));
hold on;
line([x2,x3], [y2, y3], 'Color', colors(kk,:));
line([x3,x1], [y3, y1], 'Color', colors(kk,:));
pause(0.2);
drawnow;
end
figure()
for k = 1:length(data)
kk = data(k,1);
x1 = data(k,2);
y1 = data(k,3);
x2 = data(k,4);
y2 = data(k,5);
x3 = data(k,6);
y3 = data(k,7);
line([x1,x2], [y1, y2], 'Color', colors(kk,:));
hold on;
line([x2,x3], [y2, y3], 'Color', colors(kk,:));
line([x3,x1], [y3, y1], 'Color', colors(kk,:));
pause(0.2);
drawnow;
end
function log1 = import(filename, startRow, endRow)
%IMPORTFILE Import numeric data from a text file as a matrix.
% LOG1 = IMPORTFILE(FILENAME) Reads data from text file FILENAME for the
% default selection.
%
% LOG1 = IMPORTFILE(FILENAME, STARTROW, ENDROW) Reads data from rows
% STARTROW through ENDROW of text file FILENAME.
%
% Example:
% log1 = importfile('log.txt', 3, 120);
%
% See also TEXTSCAN.
% Auto-generated by MATLAB on 2019/03/19 16:01:10
%% Initialize variables.
delimiter = {',',';'};
if nargin<=2
startRow = 3;
endRow = inf;
end
%% Format for each line of text:
% column1: double (%f)
% column2: double (%f)
% column3: double (%f)
% column4: double (%f)
% column5: double (%f)
% column6: double (%f)
% column7: double (%f)
% For more information, see the TEXTSCAN documentation.
formatSpec = '%f%f%f%f%f%f%f%[^\n\r]';
%% Open the text file.
fileID = fopen(filename,'r');
%% Read columns of data according to the format.
% This call is based on the structure of the file used to generate this
% code. If an error occurs for a different file, try regenerating the code
% from the Import Tool.
dataArray = textscan(fileID, formatSpec, endRow(1)-startRow(1)+1, 'Delimiter', delimiter, 'TextType', 'string', 'HeaderLines', startRow(1)-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
for block=2:length(startRow)
frewind(fileID);
dataArrayBlock = textscan(fileID, formatSpec, endRow(block)-startRow(block)+1, 'Delimiter', delimiter, 'TextType', 'string', 'HeaderLines', startRow(block)-1, 'ReturnOnError', false, 'EndOfLine', '\r\n');
for col=1:length(dataArray)
dataArray{col} = [dataArray{col};dataArrayBlock{col}];
end
end
%% Close the text file.
fclose(fileID);
%% Post processing for unimportable data.
% No unimportable data rules were applied during the import, so no post
% processing code is included. To generate code which works for
% unimportable data, select unimportable cells in a file and regenerate the
% script.
%% Create output variable
log1 = [dataArray{1:end-1}];
end
\ No newline at end of file
This diff is collapsed.
......@@ -213,9 +213,9 @@ SettingsDialog.chbShowPedestrianIds.text=Show PedestrianIds
PostVis.chShowEvacTimeColor.text=Color Pedestrians regarding to Evacuation Times
PostVis.additional.border.text=PostVis
PostVis.btnPlay.tooltip=Play (Space)
PostVis.btnPause.tooltip=Pause (Space)
PostVis.btnStop.tooltip=Stop (Backspace)
PostVis.btnPlay.tooltip=Play
PostVis.btnPause.tooltip=Pause
PostVis.btnStop.tooltip=Stop
PostVis.btnRecord.tooltip=Start Recording
PostVis.btnAbout.tooltip=About
PostVis.about.title=About
......
......@@ -214,9 +214,9 @@ ProjectView.mntmCopyOutputDir.text=Kopiere Output Pfad in Zwischenablage
SettingsDialog.chbShowPedestrianIds.text=Fu\u00dfg\u00E4nger-Ids anzeigen
PostVis.additional.border.text=PostVis
PostVis.chShowEvacTimeColor.text=F\u00e4rbe Fu\u00dfg\u00E4nger nach ihrer Evakuierungszeit
PostVis.btnPlay.tooltip=Start (Leertaste)
PostVis.btnPause.tooltip=Pause (Leertaste)
PostVis.btnStop.tooltip=Stopp (Backspace-Taste)
PostVis.btnPlay.tooltip=Start
PostVis.btnPause.tooltip=Pause
PostVis.btnStop.tooltip=Stopp
PostVis.btnRecord.tooltip=Starte Aufnahme
PostVis.chbHidePedAtTarget.text=Fu\u00dfg\u00E4nger im Ziel nicht anzeigen
......
......@@ -49,25 +49,22 @@ public class CLGaussianCalculator {
int width = Math.max(filterObstacles.getMatrixWidth(), filterPedestrians.getMatrixWidth());
int height = Math.max(filterObstacles.getMatrixHeight(), filterPedestrians.getMatrixHeight());
BufferedImage image = createImage(width, height);
int maxColorValue = 20;
int maxColorValue = 255 * 255 * 255;
ColorHelper colorHelper = new ColorHelper(maxColorValue);
// double bound = filter.getMaxFilteredValue();
double max = 1.00;
double factor = maxColorValue / max;
//System.out.println(filterPedestrians.getMaxFilteredValue()); // 0.1259
double maxValue = Double.MIN_VALUE;
for (int x = 0; x < filterPedestrians.getMatrixWidth(); x++) {
for (int y = 0; y < filterPedestrians.getMatrixHeight(); y++) {
double pedValue = filterPedestrians.getFilteredValue(x, y);
double obsValue = filterObstacles.getFilteredValue(x, y);
double value = pedValue + obsValue;
// value = pedValue;
image.setRGB(x, y, colorHelper.numberToColor(value ).getRGB());
if(maxValue < value) {
maxValue = value;
}
/*
image.setRGB(x, y, colorHelper.numberToColor(value * factor).getRGB());
/*
* if(value <= 0.0) {
* image.setRGB(x, y, Color.WHITE.getRGB());
* } else {
......@@ -76,7 +73,6 @@ public class CLGaussianCalculator {
*/
}
}
System.out.println(maxValue);
return image;
}
......
......@@ -2,11 +2,16 @@ package org.vadere.gui.postvisualization.view;
import com.jgoodies.forms.layout.CellConstraints;
import com.jgoodies.forms.layout.FormLayout;
import org.vadere.gui.components.control.IViewportChangeListener;
import org.vadere.gui.components.control.JViewportChangeListener;
import org.vadere.gui.components.control.PanelResizeListener;
import org.vadere.gui.components.control.ViewportChangeListener;
import org.vadere.gui.components.control.simulation.*;
import org.vadere.gui.components.control.simulation.ActionGeneratePNG;
import org.vadere.gui.components.control.simulation.ActionGenerateSVG;
import org.vadere.gui.components.control.simulation.ActionGenerateTikz;
import org.vadere.gui.components.control.simulation.ActionSwapSelectionMode;
import org.vadere.gui.components.control.simulation.ActionVisualization;
import org.vadere.gui.components.model.IDefaultModel;
import org.vadere.gui.components.utils.Messages;
import org.vadere.gui.components.utils.Resources;
......@@ -18,18 +23,21 @@ import org.vadere.gui.postvisualization.control.*;
import org.vadere.gui.postvisualization.model.PostvisualizationModel;
import org.vadere.gui.projectview.control.ActionDeselect;
import org.vadere.simulator.projects.Scenario;
import org.vadere.simulator.projects.io.HashGenerator;
import org.vadere.simulator.projects.io.IOOutput;
import org.vadere.util.io.IOUtils;
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.io.File;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.ArrayList;
import java.util.Observer;
import java.util.prefs.Preferences;
import javax.swing.*;
/**
* Main Window of the new post visualization.
*
......@@ -46,9 +54,6 @@ public class PostvisualizationWindow extends JPanel implements Observer {
private JMenuBar menuBar;
private static Resources resources = Resources.getInstance("postvisualization");
private final ScenarioElementView textView;
private JButton playButton;
private JButton pauseButton;
private JButton stopButton;
public PostvisualizationWindow(final String projectPath) {
this(false, projectPath);
......@@ -127,14 +132,14 @@ public class PostvisualizationWindow extends JPanel implements Observer {
int iconHeight = Integer.valueOf(resources.getProperty("ProjectView.icon.height.value"));
int iconWidth = Integer.valueOf(resources.getProperty("ProjectView.icon.width.value"));
playButton = addActionToToolbar(toolbar,
addActionToToolbar(toolbar,
new ActionPlay("play", resources.getIcon("play.png", iconWidth, iconHeight), model),
"PostVis.btnPlay.tooltip");
pauseButton = addActionToToolbar(toolbar,
addActionToToolbar(toolbar,
new ActionPause("pause", resources.getIcon("pause.png", iconWidth, iconHeight), model),
"PostVis.btnPause.tooltip");
stopButton = addActionToToolbar(toolbar,
new ActionStop("stop", resources.getIcon("stop.png", iconWidth, iconHeight), model),
addActionToToolbar(toolbar,
new ActionStop("play", resources.getIcon("stop.png", iconWidth, iconHeight), model),
"PostVis.btnStop.tooltip");
toolbar.addSeparator(new Dimension(5, 50));
......@@ -294,7 +299,6 @@ public class PostvisualizationWindow extends JPanel implements Observer {
}
}
buildKeyboardShortcuts();
miGlobalSettings.addActionListener(e -> DialogFactory.createSettingsDialog(model).setVisible(true));
......@@ -314,24 +318,6 @@ public class PostvisualizationWindow extends JPanel implements Observer {
revalidate();
}
private void buildKeyboardShortcuts() {
Action spaceKeyReaction = new ActionVisualization("Typed Space Key Reaction", model){
boolean isRunning = false;
@Override
public void actionPerformed(ActionEvent e){
(isRunning ? pauseButton : playButton).getAction().actionPerformed(null);
isRunning = !isRunning;
}
};
addKeyboardShortcut("SPACE","Typed Space", spaceKeyReaction);
addKeyboardShortcut("BACK_SPACE","Typed Backspace", stopButton.getAction());
}
private void addKeyboardShortcut(String key, String actionKey, Action action) {
getInputMap(JComponent.WHEN_IN_FOCUSED_WINDOW).put(KeyStroke.getKeyStroke(key), actionKey);
getActionMap().put(actionKey, action);
}
private JMenuBar getMenu() {
return menuBar;
}
......
......@@ -2,19 +2,16 @@ package org.vadere.gui.projectview.control;
import org.vadere.gui.components.utils.Messages;
import org.vadere.gui.projectview.VadereApplication;
import org.vadere.gui.projectview.model.ProjectViewModel;
import org.vadere.gui.projectview.utils.ApplicationWriter;
import org.vadere.gui.projectview.view.VDialogManager;
import org.vadere.util.io.IOUtils;
import org.vadere.util.logging.Logger;
import javax.swing.*;
import java.io.IOException;
import java.util.Arrays;
import java.util.TreeSet;
import java.util.prefs.BackingStoreException;
import java.util.prefs.Preferences;
import javax.swing.*;
public abstract class ActionAbstractSaveProject extends AbstractAction {
......@@ -102,7 +99,6 @@ public abstract class ActionAbstractSaveProject extends AbstractAction {
model.getProject().saveChanges();
model.refreshScenarioNames();
logger.info("save project");
updateRecentProjectPreferences(model);
} catch (IOException e) {
IOUtils.errorBox(
Messages.getString("SaveFileErrorMessage.text") + System.lineSeparator()
......@@ -117,16 +113,6 @@ public abstract class ActionAbstractSaveProject extends AbstractAction {
}
}
private static void updateRecentProjectPreferences(ProjectViewModel model) {
Preferences preferences = Preferences.userNodeForPackage(VadereApplication.class);
final String key = "recent_projects";
final TreeSet<String> values = new TreeSet(Arrays.asList(preferences.get(key, "").split(",")));
values.add(model.getCurrentProjectPath());
String value = values.stream().reduce("", (a, b) -> a + "," + b);
System.out.println(values.toString());
preferences.put(key, value.replaceFirst(",", ""));
}
static void savePreferences() throws IOException, BackingStoreException {
ApplicationWriter.savePreferences();
logger.info("save preferences");
......
......@@ -5,7 +5,34 @@ import org.jetbrains.annotations.NotNull;
import org.vadere.gui.components.utils.Messages;
import org.vadere.gui.postvisualization.control.Player;
import org.vadere.gui.projectview.VadereApplication;
import org.vadere.gui.projectview.control.*;
import org.vadere.gui.projectview.control.ActionAddScenario;
import org.vadere.gui.projectview.control.ActionCloneScenario;
import org.vadere.gui.projectview.control.ActionCloseApplication;
import org.vadere.gui.projectview.control.ActionCreateProject;
import org.vadere.gui.projectview.control.ActionDeleteOutputDirectories;
import org.vadere.gui.projectview.control.ActionDeleteScenarios;
import org.vadere.gui.projectview.control.ActionEditScenarioDescription;
import org.vadere.gui.projectview.control.ActionGenerateScenarioFromOutputFile;
import org.vadere.gui.projectview.control.ActionInterruptScenarios;
import org.vadere.gui.projectview.control.ActionLoadProject;
import org.vadere.gui.projectview.control.ActionLoadRecentProject;
import org.vadere.gui.projectview.control.ActionOpenInExplorer;
import org.vadere.gui.projectview.control.ActionOutputToScenario;
import org.vadere.gui.projectview.control.ActionPauseScenario;
import org.vadere.gui.projectview.control.ActionRenameOutputFile;
import org.vadere.gui.projectview.control.ActionRenameProject;
import org.vadere.gui.projectview.control.ActionRenameScenario;
import org.vadere.gui.projectview.control.ActionRunAllScenarios;
import org.vadere.gui.projectview.control.ActionRunOutput;
import org.vadere.gui.projectview.control.ActionRunSelectedScenarios;
import org.vadere.gui.projectview.control.ActionSaveAsProject;
import org.vadere.gui.projectview.control.ActionSaveProject;
import org.vadere.gui.projectview.control.ActionSeeDiscardChanges;
import org.vadere.gui.projectview.control.ActionShowAboutDialog;
import org.vadere.gui.projectview.control.ActionToClipboard;
import org.vadere.gui.projectview.control.IOutputFileRefreshListener;
import org.vadere.gui.projectview.control.IProjectChangeListener;
import org.vadere.gui.projectview.control.ShowResultDialogAction;
import org.vadere.gui.projectview.model.ProjectViewModel;
import org.vadere.gui.projectview.model.ProjectViewModel.OutputBundle;
import org.vadere.gui.projectview.model.ProjectViewModel.ScenarioBundle;
......@@ -20,9 +47,6 @@ import org.vadere.util.io.IOUtils;
import org.vadere.util.logging.Logger;
import org.vadere.util.opencl.CLUtils;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.KeyEvent;
......@@ -37,6 +61,10 @@ import java.util.Optional;
import java.util.Set;
import java.util.prefs.Preferences;
import javax.swing.*;
import javax.swing.border.EmptyBorder;
import javax.swing.event.ListSelectionEvent;
/**
* Main view of the Vadere GUI.
*
......@@ -333,21 +361,11 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
closeApplicationAction.actionPerformed(null);
}
});
Preferences pref = Preferences.userNodeForPackage(VadereApplication.class);
pack();
}
private void buildKeyboardShortcuts(ActionPauseScenario pauseScenarioAction, Action interruptScenariosAction) {
addKeyboardShortcut("SPACE", "Typed Space", btnPauseRunningScenarios.getAction());
addKeyboardShortcut("BACK_SPACE", "Typed Backspace", btnStopRunningScenarios.getAction());
pack();
}
private void addKeyboardShortcut(String key, String actionKey, Action action) {
controlPanel.getInputMap().put(KeyStroke.getKeyStroke(key), actionKey);
controlPanel.getActionMap().put(actionKey, action);
}
private void buildMenuBar(ActionCloseApplication closeApplicationAction, ActionAddScenario addScenarioAction) {
private void buildMenuBar(ActionCloseApplication closeApplicationAction, ActionAddScenario addScenarioAction) {
JMenuBar menuBar = new JMenuBar();
setJMenuBar(menuBar);
......@@ -365,7 +383,7 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
JMenuItem mntmLoadProject = new JMenuItem(loadProjectAction);
mntmRecentProjects = new JMenu(Messages.getString("ProjectView.mntmRecentProjects.text"));
mntmRecentProjects.setEnabled(true);
mntmRecentProjects.setEnabled(false);
updateRecentProjectsMenu();
Action changeNameAction = new ActionRenameProject(Messages.getString("ProjectView.mntmChangeName.text"), model);
......@@ -535,7 +553,6 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
model.setCurrentScenario(bundle.getScenario());
logger.info(String.format("selected scenario '%s'", bundle.getScenario().getName()));
scenarioJPanel.setScenario(bundle.getScenario(), true);
outputTableRenderer.setMarkedOutputFiles(bundle.getOutputDirectories());
......@@ -711,8 +728,6 @@ public class ProjectView extends JFrame implements ProjectFinishedListener, Sing
toolBar.getInputMap().put(
KeyStroke.getKeyStroke(Messages.getString("ProjectView.pauseTests.shortcut").charAt(0)), "pauseTests");
toolBar.getActionMap().put("pauseTests", pauseScenarioAction);
buildKeyboardShortcuts(pauseScenarioAction, interruptScenariosAction);
}
private void buildRightSidePanel() {
......
......@@ -192,32 +192,32 @@
"targetAttractionStrength" : 1.0,
"timeCostAttributes" : {
"standardDeviation" : 0.7,
"type" : "UNIT",
"obstacleDensityWeight" : 0.0,
"type" : "OBSTACLES",
"obstacleDensityWeight" : 3.5,
"pedestrianSameTargetDensityWeight" : 3.5,
"pedestrianOtherTargetDensityWeight" : 3.5,
"pedestrianWeight" : 3.5,
"queueWidthLoading" : 0.1,
"queueWidthLoading" : 1.0,
"pedestrianDynamicWeight" : 6.0,
"loadingType" : "CONSTANT"
}
},
"org.vadere.state.attributes.models.AttributesOSM" : {
"stepCircleResolution" : 30,
"numberOfCircles" : 6,
"optimizationType" : "DISCRETE",
"stepCircleResolution" : 4,
"numberOfCircles" : 1,
"optimizationType" : "NELDER_MEAD",
"varyStepDirection" : true,
"movementType" : "ARBITRARY",
"stepLengthIntercept" : 0.4625,
"stepLengthSlopeSpeed" : 0.2345,
"stepLengthSD" : 0.0,
"movementThreshold" : 0.0,
"minStepLength" : 0.1,
"minStepLength" : 0.3,
"minimumStepLength" : true,
"maxStepDuration" : 1.7976931348623157E308,
"dynamicStepLength" : false,
"updateType" : "EVENT_DRIVEN",
"seeSmallWalls" : true,
"seeSmallWalls" : false,
"targetPotentialModel" : "org.vadere.simulator.models.potential.fields.PotentialFieldTargetGrid",
"pedestrianPotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldPedestrianCompactSoftshell",
"obstaclePotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldObstacleCompactSoftshell",
......@@ -226,12 +226,12 @@
"org.vadere.state.attributes.models.AttributesPotentialCompactSoftshell" : {
"pedPotentialIntimateSpaceWidth" : 0.45,
"pedPotentialPersonalSpaceWidth" : 1.2,
"pedPotentialHeight" : 35.0,
"pedPotentialHeight" : 50.0,
"obstPotentialWidth" : 0.8,
"obstPotentialHeight" : 4.0,
"intimateSpaceFactor" : 2.0,
"obstPotentialHeight" : 6.0,
"intimateSpaceFactor" : 1.2,
"personalSpacePower" : 1,
"intimateSpacePower" : 2
"intimateSpacePower" : 1
}
},
"attributesSimulation" : {
......@@ -340,13 +340,12 @@
"startingWithRedLight" : false,
"nextSpeed" : -1.0
} ],
"absorbingAreas" : [ ],
"sources" : [ {
"id" : -1,
"shape" : {
"x" : 0.8,
"y" : 6.4,
"width" : 10.0,
"width" : 15.0,
"height" : 8.0,
"type" : "RECTANGLE"
},
......@@ -364,10 +363,10 @@
} ],
"dynamicElements" : [ ],
"attributesPedestrian" : {
"radius" : 0.2,
"radius" : 0.195,
"densityDependentSpeed" : false,
"speedDistributionMean" : 1.55,
"speedDistributionStandardDeviation" : 0.15,
"speedDistributionStandardDeviation" : 0.26,
"minimumSpeed" : 1.37,
"maximumSpeed" : 1.73,
"acceleration" : 2.0
......
......@@ -324,7 +324,6 @@
"startingWithRedLight" : false,
"nextSpeed" : -1.0
} ],
"absorbingAreas" : [ ],
"sources" : [ {
"id" : -1,
"shape" : {
......
{
"name" : "C-050-180-180_Q",
"name" : "C-050-180-180_long",
"description" : "",
"release" : "0.7",
"processWriters" : {
......@@ -61,7 +61,7 @@
"attributesType" : "org.vadere.state.attributes.processor.AttributesFundamentalDiagramAProcessor",
"attributes" : {
"pedestrianLineCrossProcessorId" : 8,
"pedestrianVelocityProcessorId" : 7,
"pedestrianVelocityProcessorId" : 13,
"deltaTime" : 10.0
}
}, {
......@@ -70,7 +70,7 @@
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianVelocityProcessor",
"attributes" : {
"pedestrianPositionProcessorId" : 1,
"backSteps" : 3
"backSteps" : 1
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.PedestrianLineCrossProcessor",
......@@ -155,7 +155,7 @@
"attributesType" : "org.vadere.state.attributes.processor.AttributesPedestrianVelocityByTrajectoryProcessor",
"attributes" : {
"pedestrianTrajectoryProcessorId" : 10,
"backSteps" : 3
"backSteps" : 1
}
}, {
"type" : "org.vadere.simulator.projects.dataprocessing.processor.FundamentalDiagramEProcessor",
......@@ -192,32 +192,32 @@
"targetAttractionStrength" : 1.0,
"timeCostAttributes" : {
"standardDeviation" : 0.7,
"type" : "QUEUEING",
"obstacleDensityWeight" : 0.1,
"type" : "OBSTACLES",
"obstacleDensityWeight" : 3.5,
"pedestrianSameTargetDensityWeight" : 3.5,
"pedestrianOtherTargetDensityWeight" : 3.5,
"pedestrianWeight" : 3.5,
"queueWidthLoading" : 3.0,
"queueWidthLoading" : 1.0,
"pedestrianDynamicWeight" : 6.0,
"loadingType" : "CONSTANT"
}
},
"org.vadere.state.attributes.models.AttributesOSM" : {
"stepCircleResolution" : 30,
"numberOfCircles" : 5,
"optimizationType" : "DISCRETE",
"stepCircleResolution" : 4,
"numberOfCircles" : 1,
"optimizationType" : "NELDER_MEAD",
"varyStepDirection" : true,
"movementType" : "ARBITRARY",
"stepLengthIntercept" : 0.4625,
"stepLengthSlopeSpeed" : 0.2345,
"stepLengthSD" : 0.0,
"stepLengthSD" : 0.036,
"movementThreshold" : 0.0,
"minStepLength" : 0.1,
"minStepLength" : 0.3,
"minimumStepLength" : true,
"maxStepDuration" : 1.7976931348623157E308,
"dynamicStepLength" : false,
"updateType" : "EVENT_DRIVEN",
"seeSmallWalls" : true,
"seeSmallWalls" : false,
"targetPotentialModel" : "org.vadere.simulator.models.potential.fields.PotentialFieldTargetGrid",
"pedestrianPotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldPedestrianCompactSoftshell",
"obstaclePotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldObstacleCompactSoftshell",
......@@ -226,12 +226,12 @@
"org.vadere.state.attributes.models.AttributesPotentialCompactSoftshell" : {
"pedPotentialIntimateSpaceWidth" : 0.45,
"pedPotentialPersonalSpaceWidth" : 1.2,
"pedPotentialHeight" : 35.0,
"pedPotentialHeight" : 50.0,
"obstPotentialWidth" : 0.8,
"obstPotentialHeight" : 4.0,
"intimateSpaceFactor" : 2.0,
"obstPotentialHeight" : 6.0,
"intimateSpaceFactor" : 1.2,
"personalSpacePower" : 1,
"intimateSpacePower" : 2
"intimateSpacePower" : 1
}
},
"attributesSimulation" : {
......@@ -340,22 +340,21 @@
"startingWithRedLight" : false,
"nextSpeed" : -1.0
} ],
"absorbingAreas" : [ ],
"sources" : [ {
"id" : -1,
"shape" : {
"x" : 0.8,
"y" : 6.4,
"width" : 10.0,
"width" : 15.0,
"height" : 8.0,
"type" : "RECTANGLE"
},
"interSpawnTimeDistribution" : "org.vadere.state.scenario.ConstantDistribution",
"distributionParameters" : [ 1.0 ],
"spawnNumber" : 61,
"maxSpawnNumberTotal" : 61,
"spawnNumber" : 4,
"maxSpawnNumberTotal" : 2000,
"startTime" : 0.0,
"endTime" : 0.0,
"endTime" : 200.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" : true,
"targetIds" : [ 1 ],
......@@ -364,10 +363,10 @@
} ],
"dynamicElements" : [ ],
"attributesPedestrian" : {
"radius" : 0.2,
"radius" : 0.195,
"densityDependentSpeed" : false,
"speedDistributionMean" : 1.55,
"speedDistributionStandardDeviation" : 0.15,
"speedDistributionStandardDeviation" : 0.26,
"minimumSpeed" : 1.37,
"maximumSpeed" : 1.73,
"acceleration" : 2.0
......
......@@ -192,32 +192,32 @@
"targetAttractionStrength" : 1.0,
"timeCostAttributes" : {
"standardDeviation" : 0.7,
"type" : "UNIT",
"obstacleDensityWeight" : 0.0,
"type" : "OBSTACLES",
"obstacleDensityWeight" : 3.5,
"pedestrianSameTargetDensityWeight" : 3.5,
"pedestrianOtherTargetDensityWeight" : 3.5,
"pedestrianWeight" : 3.5,
"queueWidthLoading" : 0.1,
"queueWidthLoading" : 1.0,
"pedestrianDynamicWeight" : 6.0,
"loadingType" : "CONSTANT"
}
},
"org.vadere.state.attributes.models.AttributesOSM" : {
"stepCircleResolution" : 30,
"numberOfCircles" : 6,
"optimizationType" : "DISCRETE",
"stepCircleResolution" : 4,
"numberOfCircles" : 1,
"optimizationType" : "NELDER_MEAD",
"varyStepDirection" : true,
"movementType" : "ARBITRARY",
"stepLengthIntercept" : 0.4625,
"stepLengthSlopeSpeed" : 0.2345,
"stepLengthSD" : 0.0,
"movementThreshold" : 0.0,
"minStepLength" : 0.1,
"minStepLength" : 0.3,
"minimumStepLength" : true,
"maxStepDuration" : 1.7976931348623157E308,
"dynamicStepLength" : false,
"updateType" : "EVENT_DRIVEN",
"seeSmallWalls" : true,
"seeSmallWalls" : false,
"targetPotentialModel" : "org.vadere.simulator.models.potential.fields.PotentialFieldTargetGrid",
"pedestrianPotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldPedestrianCompactSoftshell",
"obstaclePotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldObstacleCompactSoftshell",
......@@ -226,12 +226,12 @@
"org.vadere.state.attributes.models.AttributesPotentialCompactSoftshell" : {
"pedPotentialIntimateSpaceWidth" : 0.45,
"pedPotentialPersonalSpaceWidth" : 1.2,
"pedPotentialHeight" : 35.0,
"pedPotentialHeight" : 50.0,
"obstPotentialWidth" : 0.8,
"obstPotentialHeight" : 4.0,
"intimateSpaceFactor" : 2.0,
"obstPotentialHeight" : 6.0,
"intimateSpaceFactor" : 1.2,
"personalSpacePower" : 1,
"intimateSpacePower" : 2
"intimateSpacePower" : 1
}
},
"attributesSimulation" : {
......@@ -340,13 +340,12 @@
"startingWithRedLight" : false,
"nextSpeed" : -1.0
} ],
"absorbingAreas" : [ ],
"sources" : [ {
"id" : -1,
"shape" : {
"x" : 0.8,
"y" : 6.4,
"width" : 10.0,
"width" : 15.0,
"height" : 8.0,
"type" : "RECTANGLE"
},
......@@ -364,10 +363,10 @@
} ],
"dynamicElements" : [ ],
"attributesPedestrian" : {
"radius" : 0.2,
"radius" : 0.195,
"densityDependentSpeed" : false,
"speedDistributionMean" : 1.55,
"speedDistributionStandardDeviation" : 0.15,
"speedDistributionStandardDeviation" : 0.26,
"minimumSpeed" : 1.37,
"maximumSpeed" : 1.73,
"acceleration" : 2.0
......
{
"name" : "C-060-180-180_Q",
"name" : "C-060-180-180_long",
"description" : "",
"release" : "0.7",
"processWriters" : {
......@@ -192,32 +192,32 @@
"targetAttractionStrength" : 1.0,
"timeCostAttributes" : {
"standardDeviation" : 0.7,
"type" : "QUEUEING",
"obstacleDensityWeight" : 0.1,
"type" : "OBSTACLES",
"obstacleDensityWeight" : 3.5,
"pedestrianSameTargetDensityWeight" : 3.5,
"pedestrianOtherTargetDensityWeight" : 3.5,
"pedestrianWeight" : 3.5,
"queueWidthLoading" : 3.0,
"queueWidthLoading" : 1.0,
"pedestrianDynamicWeight" : 6.0,
"loadingType" : "CONSTANT"
}
},
"org.vadere.state.attributes.models.AttributesOSM" : {
"stepCircleResolution" : 30,
"numberOfCircles" : 5,
"optimizationType" : "DISCRETE",
"stepCircleResolution" : 4,
"numberOfCircles" : 1,
"optimizationType" : "NELDER_MEAD",
"varyStepDirection" : true,
"movementType" : "ARBITRARY",
"stepLengthIntercept" : 0.4625,
"stepLengthSlopeSpeed" : 0.2345,
"stepLengthSD" : 0.0,
"stepLengthSD" : 0.036,
"movementThreshold" : 0.0,
"minStepLength" : 0.1,
"minStepLength" : 0.3,
"minimumStepLength" : true,
"maxStepDuration" : 1.7976931348623157E308,
"dynamicStepLength" : false,
"updateType" : "EVENT_DRIVEN",
"seeSmallWalls" : true,
"seeSmallWalls" : false,
"targetPotentialModel" : "org.vadere.simulator.models.potential.fields.PotentialFieldTargetGrid",
"pedestrianPotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldPedestrianCompactSoftshell",
"obstaclePotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldObstacleCompactSoftshell",
......@@ -226,12 +226,12 @@
"org.vadere.state.attributes.models.AttributesPotentialCompactSoftshell" : {
"pedPotentialIntimateSpaceWidth" : 0.45,
"pedPotentialPersonalSpaceWidth" : 1.2,
"pedPotentialHeight" : 35.0,
"pedPotentialHeight" : 50.0,
"obstPotentialWidth" : 0.8,
"obstPotentialHeight" : 4.0,
"intimateSpaceFactor" : 2.0,
"obstPotentialHeight" : 6.0,
"intimateSpaceFactor" : 1.2,
"personalSpacePower" : 1,
"intimateSpacePower" : 2
"intimateSpacePower" : 1
}
},
"attributesSimulation" : {
......@@ -340,22 +340,21 @@
"startingWithRedLight" : false,
"nextSpeed" : -1.0
} ],
"absorbingAreas" : [ ],
"sources" : [ {
"id" : -1,
"shape" : {
"x" : 0.8,
"y" : 6.4,
"width" : 10.0,
"width" : 15.0,
"height" : 8.0,
"type" : "RECTANGLE"
},
"interSpawnTimeDistribution" : "org.vadere.state.scenario.ConstantDistribution",
"distributionParameters" : [ 1.0 ],
"spawnNumber" : 66,
"maxSpawnNumberTotal" : 66,
"spawnNumber" : 4,
"maxSpawnNumberTotal" : 2000,
"startTime" : 0.0,
"endTime" : 0.0,
"endTime" : 200.0,
"spawnAtRandomPositions" : true,
"useFreeSpaceOnly" : true,
"targetIds" : [ 1 ],
......@@ -364,10 +363,10 @@
} ],
"dynamicElements" : [ ],
"attributesPedestrian" : {
"radius" : 0.2,
"radius" : 0.195,
"densityDependentSpeed" : false,
"speedDistributionMean" : 1.55,
"speedDistributionStandardDeviation" : 0.15,
"speedDistributionStandardDeviation" : 0.26,
"minimumSpeed" : 1.37,
"maximumSpeed" : 1.73,
"acceleration" : 2.0
......
......@@ -192,32 +192,32 @@
"targetAttractionStrength" : 1.0,
"timeCostAttributes" : {
"standardDeviation" : 0.7,
"type" : "UNIT",
"obstacleDensityWeight" : 0.0,
"type" : "OBSTACLES",
"obstacleDensityWeight" : 3.5,
"pedestrianSameTargetDensityWeight" : 3.5,
"pedestrianOtherTargetDensityWeight" : 3.5,
"pedestrianWeight" : 3.5,
"queueWidthLoading" : 0.1,
"queueWidthLoading" : 1.0,
"pedestrianDynamicWeight" : 6.0,
"loadingType" : "CONSTANT"
}
},
"org.vadere.state.attributes.models.AttributesOSM" : {
"stepCircleResolution" : 30,
"numberOfCircles" : 6,
"optimizationType" : "DISCRETE",
"stepCircleResolution" : 4,
"numberOfCircles" : 1,
"optimizationType" : "NELDER_MEAD",
"varyStepDirection" : true,
"movementType" : "ARBITRARY",
"stepLengthIntercept" : 0.4625,
"stepLengthSlopeSpeed" : 0.2345,
"stepLengthSD" : 0.0,
"movementThreshold" : 0.0,
"minStepLength" : 0.1,
"minStepLength" : 0.3,
"minimumStepLength" : true,
"maxStepDuration" : 1.7976931348623157E308,
"dynamicStepLength" : false,
"updateType" : "EVENT_DRIVEN",
"seeSmallWalls" : true,
"seeSmallWalls" : false,
"targetPotentialModel" : "org.vadere.simulator.models.potential.fields.PotentialFieldTargetGrid",
"pedestrianPotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldPedestrianCompactSoftshell",
"obstaclePotentialModel" : "org.vadere.simulator.models.potential.PotentialFieldObstacleCompactSoftshell",
......@@ -226,12 +226,12 @@
"org.vadere.state.attributes.models.AttributesPotentialCompactSoftshell" : {
"pedPotentialIntimateSpaceWidth" : 0.45,
"pedPotentialPersonalSpaceWidth" : 1.2,
"pedPotentialHeight" : 35.0,
"pedPotentialHeight" : 50.0,
"obstPotentialWidth" : 0.8,
"obstPotentialHeight" : 4.0,
"intimateSpaceFactor" : 2.0,
"obstPotentialHeight" : 6.0,
"intimateSpaceFactor" : 1.2,
"personalSpacePower" : 1,
"intimateSpacePower" : 2
"intimateSpacePower" : 1
}
},
"attributesSimulation" : {
......@@ -340,13 +340,12 @@
"startingWithRedLight" : false,
"nextSpeed" : -1.0
} ],
"absorbingAreas" : [ ],
"sources" : [ {
"id" : -1,
"shape" : {
"x" : 0.8,
"y" : 6.4,
"width" : 10.0,
"width" : 15.0,
"height" : 8.0,
"type" : "RECTANGLE"
},
......@@ -364,10 +363,10 @@
} ],
"dynamicElements" : [ ],
"attributesPedestrian" : {
"radius" : 0.2,
"radius" : 0.195,
"densityDependentSpeed" : false,
"speedDistributionMean" : 1.55,