Commit 9c3a4572 authored by Mohcine Chraibi's avatar Mohcine Chraibi

Merge branch 'develop'

parents e54cfb1b 8f09f77f
......@@ -71,7 +71,6 @@ Analysis::Analysis()
_building = NULL;
_projectRootDir="";
_deltaF=5; // half of the time interval that used to calculate instantaneous velocity of ped i. Here v_i = (X(t+deltaF) - X(t+deltaF))/(2*deltaF). X is location.
_deltaT =160; // the time interval to calculate the classic flow
_DoesUseMethodA = false; // Method A (Zhang2011a)
_DoesUseMethodB = false; // Method B (Zhang2011a)
_DoesUseMethodC = false; // Method C //calculate and save results of classic in separate file
......@@ -81,7 +80,7 @@ Analysis::Analysis()
_outputGraph = false; // Whether output the data for plot the fundamental diagram each frame
_calcIndividualFD = false; //Adjust whether analyze the individual density and velocity of each pedestrian in stationary state (ALWAYS VORONOI-BASED)
_vComponent = "B"; // to mark whether x, y or x and y coordinate are used when calculating the velocity
_IgnoreBackwardMovement = false;
_grid_size_X = 0.10; // the size of the grid
_grid_size_Y = 0.10;
_lowVertexX = 0;// LOWest vertex of the geometry (x coordinate)
......@@ -94,10 +93,6 @@ Analysis::Analysis()
_trajFormat=FileFormat::FORMAT_PLAIN;
_isOneDimensional=false;
_plotGraph=false;
_plotTimeseriesA=false;
_plotTimeseriesC=false;
_plotTimeseriesD=false;
}
Analysis::~Analysis()
......@@ -152,6 +147,8 @@ void Analysis::InitArgs(ArgumentParser* args)
{
_areaForMethod_A.push_back(dynamic_cast<MeasurementArea_L*>( args->GetMeasurementArea(Measurement_Area_IDs[i])));
}
_deltaT = args->GetTimeIntervalA();
_plotTimeseriesA=args->GetIsPlotTimeSeriesA();
}
if(args->GetIsMethodB()) {
......@@ -170,6 +167,7 @@ void Analysis::InitArgs(ArgumentParser* args)
{
_areaForMethod_C.push_back(dynamic_cast<MeasurementArea_B*>( args->GetMeasurementArea(Measurement_Area_IDs[i])));
}
_plotTimeseriesC=args->GetIsPlotTimeSeriesC();
}
if(args ->GetIsMethodD()) {
......@@ -179,21 +177,20 @@ void Analysis::InitArgs(ArgumentParser* args)
{
_areaForMethod_D.push_back(dynamic_cast<MeasurementArea_B*>( args->GetMeasurementArea(Measurement_Area_IDs[i])));
}
_StartFramesMethodD = args->GetStartFramesMethodD();
_StopFramesMethodD = args->GetStopFramesMethodD();
_IndividualFDFlags = args->GetIndividualFDFlags();
_plotTimeseriesD=args->GetIsPlotTimeSeriesD();
}
_deltaF = args->GetDelatT_Vins();
_deltaT = args->GetTimeIntervalA();
_cutByCircle = args->GetIsCutByCircle();
_getProfile = args->GetIsGetProfile();
_outputGraph = args->GetIsOutputGraph();
_plotGraph = args->GetIsPlotGraph();
_plotTimeseriesA=args->GetIsPlotTimeSeriesA();
_plotTimeseriesC=args->GetIsPlotTimeSeriesC();
_plotTimeseriesD=args->GetIsPlotTimeSeriesD();
_isOneDimensional=args->GetIsOneDimensional();
_calcIndividualFD = args->GetIsIndividualFD();
_areaIndividualFD= args->GetAreaIndividualFD();
_vComponent = args->GetVComponent();
_IgnoreBackwardMovement =args->GetIgnoreBackwardMovement();
_grid_size_X = int(args->GetGridSizeX());
_grid_size_Y = int(args->GetGridSizeY());
_geoPoly = ReadGeometry(args->GetGeometryFilename(), _areaForMethod_D);
......@@ -224,7 +221,7 @@ std::map<int, polygon_2d> Analysis::ReadGeometry(const std::string& geometryFile
//loop over all areas
for(auto&& area: areas)
{
//search for the subroom that containst that area
//search for the subroom that contains that area
for (auto&& it_room : _building->GetAllRooms())
{
for (auto&& it_sub : it_room.second->GetAllSubRooms())
......@@ -284,7 +281,7 @@ std::map<int, polygon_2d> Analysis::ReadGeometry(const std::string& geometryFile
int Analysis::RunAnalysis(const string& filename, const string& path)
{
PedData data;
if(data.ReadData(_projectRootDir, path, filename, _trajFormat, _deltaF, _vComponent)==false)
if(data.ReadData(_projectRootDir, path, filename, _trajFormat, _deltaF, _vComponent, _IgnoreBackwardMovement)==false)
{
Log->Write("ERROR:\tCould not parse the file");
return -1;
......@@ -332,9 +329,9 @@ int Analysis::RunAnalysis(const string& filename, const string& path)
{
Method_A method_A ;
method_A.SetMeasurementArea(_areaForMethod_A[i]);
method_A.SetTimeInterval(_deltaT);
method_A.SetPlotTimeSeries(_plotTimeseriesA);
bool result_A=method_A.Process(data,_scriptsLocation);
method_A.SetTimeInterval(_deltaT[i]);
method_A.SetPlotTimeSeries(_plotTimeseriesA[i]);
bool result_A=method_A.Process(data,_scriptsLocation, _areaForMethod_A[i]->_zPos);
if(result_A)
{
Log->Write("INFO:\tSuccess with Method A using measurement area id %d!\n",_areaForMethod_A[i]->_id);
......@@ -372,11 +369,11 @@ int Analysis::RunAnalysis(const string& filename, const string& path)
{
Method_C method_C;
method_C.SetMeasurementArea(_areaForMethod_C[i]);
bool result_C =method_C.Process(data);
bool result_C =method_C.Process(data,_areaForMethod_C[i]->_zPos);
if(result_C)
{
Log->Write("INFO:\tSuccess with Method C using measurement area id %d!\n",_areaForMethod_C[i]->_id);
if(_plotTimeseriesC)
if(_plotTimeseriesC[i])
{
string parameters_Timeseries="python \""+_scriptsLocation+"/_Plot_timeseries_rho_v.py\" -p \""+ _projectRootDir+VORO_LOCATION + "\" -n "+filename+
" -f "+boost::lexical_cast<std::string>(data.GetFps());
......@@ -397,6 +394,9 @@ int Analysis::RunAnalysis(const string& filename, const string& path)
for(signed int i=0; i<_areaForMethod_D.size(); i++)
{
Method_D method_D;
method_D.SetStartFrame(_StartFramesMethodD[i]);
method_D.SetStopFrame(_StopFramesMethodD[i]);
method_D.SetCalculateIndividualFD(_IndividualFDFlags[i]);
method_D.SetGeometryPolygon(_geoPoly[_areaForMethod_D[i]->_id]);
method_D.SetGeometryFileName(_geometryFileName);
method_D.SetGeometryBoundaries(_lowVertexX, _lowVertexY, _highVertexX, _highVertexY);
......@@ -404,19 +404,18 @@ int Analysis::RunAnalysis(const string& filename, const string& path)
method_D.SetOutputVoronoiCellData(_outputGraph);
method_D.SetPlotVoronoiGraph(_plotGraph);
method_D.SetDimensional(_isOneDimensional);
method_D.SetCalculateIndividualFD(_calcIndividualFD);
method_D.SetAreaIndividualFD(_areaIndividualFD);
method_D.SetCalculateProfiles(_getProfile);
method_D.SetTrajectoriesLocation(path);
if(_cutByCircle)
{
method_D.Setcutbycircle(_cutRadius, _circleEdges);
}
method_D.SetMeasurementArea(_areaForMethod_D[i]);
bool result_D = method_D.Process(data,_scriptsLocation);
bool result_D = method_D.Process(data,_scriptsLocation, _areaForMethod_D[i]->_zPos);
if(result_D)
{
Log->Write("INFO:\tSuccess with Method D using measurement area id %d!\n",_areaForMethod_D[i]->_id);
if(_plotTimeseriesD)
if(_plotTimeseriesD[i])
{
string parameters_Timeseries="python \""+_scriptsLocation+"/_Plot_timeseries_rho_v.py\" -p \""+ _projectRootDir+VORO_LOCATION + "\" -n "+filename+
" -f "+boost::lexical_cast<std::string>(data.GetFps());
......
......@@ -120,24 +120,27 @@ private:
double _highVertexX; // Highest vertex of the geometry
double _highVertexY;
int _deltaF; // half of the time interval that used to calculate instantaneous velocity of ped i.
int _deltaT; // the time interval to calculate the classic flow
std::vector<int> _deltaT; // the time interval to calculate the classic flow
bool _DoesUseMethodA; // Method A (Zhang2011a)
bool _DoesUseMethodB; // Method B (Zhang2011a)
bool _DoesUseMethodC; // Method C //calculate and save results of classic in separate file
bool _DoesUseMethodD; // Method D--Voronoi method
std::vector<int> _StartFramesMethodD;
std::vector<int> _StopFramesMethodD;
std::vector<bool> _IndividualFDFlags;
bool _cutByCircle; //Adjust whether cut each original voronoi cell by a circle
double _cutRadius;
int _circleEdges;
bool _getProfile; // Whether make field analysis or not
bool _outputGraph; // Whether output the data for plot the voronoi diagram each frame
bool _plotGraph; // Whether plot the voronoi diagram each frame
bool _plotTimeseriesA;
bool _plotTimeseriesC;
bool _plotTimeseriesD;
std::vector<bool> _plotTimeseriesA;
std::vector<bool> _plotTimeseriesC;
std::vector<bool> _plotTimeseriesD;
bool _isOneDimensional;
bool _calcIndividualFD; //Adjust whether analyze the individual density and velocity of each pedestrian in stationary state (ALWAYS VORONOI-BASED)
polygon_2d _areaIndividualFD;
std::string _vComponent; // to mark whether x, y or x and y coordinate are used when calculating the velocity
bool _IgnoreBackwardMovement;
std::string _projectRootDir;
std::string _scriptsLocation;
std::string _geometryFileName;
......
# JPSreport v0.9
# Change Log
All notable changes to this project will be documented in this file.
## Added
## JPSreport [unreleased]
## Changed
### Added
## Fixed
- Two options `startframe` and `stopframe` are added for each measurement area for method D to assign the time periods for analysis.
- Individual density based on Voronoi method is added for one dimensional case in the output file (Individual headway is moved to the 5th column).
- z-position of each measurement area can be assigned in inifile so that the trajectories in geometries with several floors can be analyzed.
- The option `plot_time_series` is available for each measurement area.
- The option `frame_interval` for method A now can have different values for different measurement area.
- The option `ignore_backward_movement` and `set_movement_direction` are added to indicate the movement direction for velocity calculation.
### Changed
- The swith for calculating Individual FD is arraged for each measurement area.
- The setting for velocity calculation is changed in inifile. Now velocity can be calculated by projecting to any direction by setting the parameter `set_movement_direction`. The backward movement against the target direction can be considered or removed by setting the parameter `ignore_backward_movement`.
# JPSreport v0.8
- The way for reading .txt format trajectory file is changed. Now the order of each column in trajectory file is not so important. The trajectory file from JPScore can be analyzed directly.
- The algorithm for loading the '.txt' format trajectory file is modified. Now the order of each column in the file is not so important. JPSreport will search for meaning of each column from the comments (for example"#ID FR X Y Z VD").
## Added
### Fixed
- The script for plot Voronoi cells is modified so that it work when the trajectory files are not the in the same location as the inifile.
- The bug related the issue #54 is fixed.
- The bug regarding to the issue #43 is fixed.
## JPSreport v0.8
### Added
- A switch is added in the infile for `method_D` to turn off plotting Voronoi diagrams. Now it is possible to only output data for the diagram but not plot figures.
......@@ -26,7 +53,7 @@
- A warning will will be given and the program stops if trajectory for a given pedestrian ID is not continuous.
## Changed
### Changed
- Scripts "_Plot_cell_rho.py" and "_Plot_cell_v.py" are modified. Now the geometry is also plotted when plotting voronoi cells.
......@@ -34,7 +61,7 @@
- Scripts "_Plot_FD.py" is modified!
## Fixed
### Fixed
- Output data file "Folw\_NT\_xxxx.dat" is closed before calling script for plotting N-t diagram.
......@@ -51,16 +78,17 @@
- when path of trajectory is not given absolutely, the default location is the same folder with the inifile
# JPSreport v0.7
## JPSreport v0.7
## Added
### Added
- Added four demos as examples for using JPSreport
- Added the option for specifying the location of scripts in configuration file.
- Embedded python scripts (**\_Plot_N\_t.py**, **\_Plot_timeseries\_rho_v.py**) for plotting N-t diagram (Method A), time series of density/velocity diagram (Method C and D) and Voronoi diagrams (Method D).
- Added python script (**SteadyState.py**) for automatically detecting steady state of pedestrian flow based on time series of density and velocity. When plotting fundamental diagrams normally only data under steady state are used due to its generality.
- Added python script (**\_Plot_FD.py**) for plotting fundamenatl diagram based on the detected steady state.
## Changed
### Changed
- Changed name of some variables in configuration file:
......@@ -96,6 +124,6 @@ removing these pedestrians from the list.
- More than one sub rooms in one geometry can be analysed independently.
## Fixed
### Fixed
- Fixed bug for dealing with obstacles inside geometry.
- Fixed bug for dealing with obstacles inside geometry.
\ No newline at end of file
# JPSreport
================
Documentation can be found [here](http://jupedsim.github.io/jpsreport/)
Documentation for **JPSreport** can be found [here](http://jupedsim.github.io/jpsreport/).
Please open a new Issue if you encouter problems or have found a bug in the code.
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geometry version ="0.5" caption="second life" unit="m" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
<geometry version ="0.8" caption="second life" unit="m" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/0.6/jps_geoemtry.xsd">
<rooms>
<room id="0" caption="hall" zpos="0.00">
......
<?xml version="1.0" encoding="UTF-8" ?>
<JPSreport project="JPS-Project" version="0.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/0.6/jps_report.xsd">
<JPSreport project="JPS-Project" version="0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/0.6/jps_report.xsd">
<!-- geometry file -->
<geometry file = "geo_KO_240_050_240.xml" />
<!-- trajectories file and format -->
<!-- either a file name or a path location. In the latter case all files in the directory will be used-->
<trajectories format="txt" unit="m">
<file name="traj_KO_240_050_240.txt" />
<file name="traj_KO_240_050_240_x.txt" />
<path location="./" />
</trajectories>
<!----give relative path based on the location inifile or give the absolute path--->
......@@ -13,36 +13,47 @@
<measurement_areas unit="m">
<area_B id="1" type="BoundingBox">
<area_B id="1" type="BoundingBox" zPos="None">
<vertex x="-2.40" y="1.00" /> <!-- Clockwise -->
<vertex x="-2.40" y="3.00" />
<vertex x="0" y="3.00" />
<vertex x="0" y="1.00" />
<length_in_movement_direction distance="2.0" />
</area_B>
<area_L id="2" type="Line">
<area_B id="2" type="BoundingBox" zPos="1.0">
<vertex x="-2.40" y="1.00" /> <!-- Clockwise -->
<vertex x="-2.40" y="3.00" />
<vertex x="0" y="3.00" />
<vertex x="0" y="1.00" />
<length_in_movement_direction distance="2.0" />
</area_B>
<area_L id="3" type="Line" zPos="1.0">
<start x="-2.40" y="1.00" />
<end x="0" y="1.00" />
</area_L>
<area_L id="4" type="Line" zPos="None">
<start x="-2.40" y="2.00" />
<end x="0" y="2.00" />
</area_L>
</measurement_areas>
<velocity>
<!-- <velocity>
<use_x_component>true</use_x_component>
<use_y_component>true</use_y_component>
<!-- The time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location.
<frame_step>10</frame_step>
</velocity>
-->
<velocity frame_step="10" set_movement_direction="None" ignore_backward_movement="false"/>
<!-- frame_step is the time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<!-- Method A (Zhang2011a) Flow and Vel -->
<method_A enabled="true">
<method_A enabled="false">
<!-- Time interval used to count the flow [fr] -->
<frame_interval unit="frame">
100
</frame_interval>
<!-- The coordinate of the line used to calculate the flow and velocity -->
<measurement_area id="2" />
<plot_time_series enabled="false"/>
<measurement_area id="3" frame_interval="100" plot_time_series="true"/>
</method_A>
<!-- Method B (Zhang2011a) Vel and Dens based on Tin and Tout -->
......@@ -52,18 +63,17 @@
<!-- Method C (Zhang2011a) Classical density and Vel -->
<method_C enabled="true">
<measurement_area id="1" />
<plot_time_series enabled="false"/>
<measurement_area id="1" plot_time_series="true"/>
<measurement_area id="2" plot_time_series="true"/>
</method_C>
<!-- Method D (Zhang2011a) Voronoi density and Vel -->
<method_D enabled="true">
<measurement_area id="1" />
<measurement_area id="1" start_frame="None" stop_frame="None" get_individual_FD="false" plot_time_series="true"/>
<measurement_area id="2" start_frame="500" stop_frame="800" get_individual_FD="false" plot_time_series="true"/>
<one_dimensional enabled="false"/>
<plot_time_series enabled="false"/>
<cut_by_circle enabled="false" radius="1.0" edges="10"/>
<output_voronoi_cells enabled="false" plot_graphs="false"/>
<individual_FD enabled="false" measurement_area_id="1"/>
<profiles enabled="false" grid_size_x="0.20" grid_size_y="0.20"/>
</method_D>
</JPSreport>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geometry version ="0.5" caption="second life" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/jps_geometry.xsd" unit="m">
<geometry version ="0.8" caption="second life" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/jps_geometry.xsd" unit="m">
<rooms>
<room id="0" caption="hall">
<subroom id="0" closed="0" class="subroom">
......
<?xml version="1.0" encoding="UTF-8"?>
<JPSreport project="JPS-Project" version="0.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/jps_report.xsd">
<JPSreport project="JPS-Project" version="0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/jps_report.xsd">
<!-- geometry file -->
<geometry file = "geo_AO_300.xml" />
<!-- trajectories file and format -->
......@@ -12,41 +12,33 @@
<scripts location="../../scripts/"/>
<measurement_areas unit="m">
<area_B id="1" type="BoundingBox">
<area_B id="1" type="BoundingBox" zPos="None">
<vertex x="2.40" y="0.53" />
<vertex x="2.40" y="-0.53" />
<vertex x="-0.60" y="-0.53" />
<vertex x="-0.60" y="0.53" />
<length_in_movement_direction distance="1.0"/>
</area_B>
<area_L id="2" type="Line">
<area_L id="2" type="Line" zPos="None">
<start x="-2.25" y="0.00" />
<end x="4.00" y="0.00" />
</area_L>
<area_L id="4" type="Line">
<area_L id="4" type="Line" zPos="None">
<start x="-2.25" y="0.50" />
<end x="4.00" y="0.50" />
</area_L>
</measurement_areas>
<velocity>
<use_x_component>true</use_x_component>
<use_y_component>true</use_y_component>
<!-- The time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<frame_step>10</frame_step>
</velocity>
<velocity frame_step="10" set_movement_direction="None" ignore_backward_movement="false"/>
<!-- frame_step is the time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<!-- Method A (Zhang2011a) Flow and Vel -->
<method_A enabled="true">
<!-- Time interval used to count the flow [fr] -->
<frame_interval unit="frame">
100
</frame_interval>
<!-- The coordinate of the line used to calculate the flow and velocity -->
<measurement_area id="2" />
<measurement_area id="4" />
<plot_time_series enabled="true"/>
<measurement_area id="2" frame_interval="100" plot_time_series="true"/>
<measurement_area id="4" frame_interval="150" plot_time_series="true"/>
</method_A>
<!-- Method B (Zhang2011a) Vel and Dens based on Tin and Tout -->
......@@ -56,18 +48,15 @@
<!-- Method C (Zhang2011a) Classical density and Vel -->
<method_C enabled="true">
<measurement_area id="1" />
<plot_time_series enabled="true"/>
<measurement_area id="1" plot_time_series="true"/>
</method_C>
<!-- Method D (Zhang2011a) Voronoi density and Vel -->
<method_D enabled="true">
<measurement_area id="1" />
<measurement_area id="1" start_frame="None" stop_frame="None" plot_time_series="true" get_individual_FD="false"/>
<one_dimensional enabled="false"/>
<plot_time_series enabled="true"/>
<cut_by_circle enabled="true" radius="1.0" edges="10"/>
<output_voronoi_cells enabled="true" plot_graphs="true"/>
<individual_FD enabled="true" measurement_area_id="1"/>
<profiles enabled="false" grid_size_x="0.20" grid_size_y="0.20"/>
</method_D>
</JPSreport>
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geometry version="0.5" caption="corner" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/jps_geometry.xsd" unit="m">
<geometry version="0.8" caption="corner" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/jps_geometry.xsd" unit="m">
<rooms>
<room id="0" caption="hall">
<subroom id="0" caption="Room" class="subroom">
......
<?xml version="1.0" encoding="UTF-8" ?>
<JPSreport project="JPS-Project" version="0.6" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/0.6/jps_report.xsd">
<JPSreport project="JPS-Project" version="0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/0.6/jps_report.xsd">
<!-- geometry file -->
<geometry file = "geo_Aufgabe2.xml" />
<!-- trajectories file and format -->
......@@ -12,36 +12,28 @@
<scripts location="../../scripts/"/>
<measurement_areas unit="m">
<area_B id="1" type="BoundingBox">
<area_B id="1" type="BoundingBox" zPos="None">
<vertex x="12.00" y="0.00" />
<vertex x="12.00" y="3.50" />
<vertex x="15.00" y="3.50" />
<vertex x="15.00" y="0.00" />
<length_in_movement_direction distance="4.0" />
</area_B>
<area_L id="2" type="Line">
<area_L id="2" type="Line" zPos="None">
<start x="23" y="2.75" />
<end x="23" y="2" />
</area_L>
</measurement_areas>
<velocity>
<use_x_component>true</use_x_component>
<use_y_component>true</use_y_component>
<!-- The time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<frame_step>10</frame_step>
</velocity>
<velocity frame_step="10" set_movement_direction="None" ignore_backward_movement="false"/>
<!-- frame_step is the time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<!-- Method A (Zhang2011a) Flow and Vel -->
<method_A enabled="true">
<!-- Time interval used to count the flow [fr] -->
<frame_interval unit="frame">
100
</frame_interval>
<!-- The coordinate of the line used to calculate the flow and velocity -->
<measurement_area id="2" />
<plot_time_series enabled="false"/>
<measurement_area id="2" frame_interval="100" plot_time_series="true"/>
</method_A>
<!-- Method B (Zhang2011a) Vel and Dens based on Tin and Tout -->
......@@ -51,18 +43,15 @@
<!-- Method C (Zhang2011a) Classical density and Vel -->
<method_C enabled="true">
<measurement_area id="1" />
<plot_time_series enabled="false"/>
<measurement_area id="1" plot_time_series="true"/>
</method_C>
<!-- Method D (Zhang2011a) Voronoi density and Vel -->
<method_D enabled="true">
<measurement_area id="1" />
<measurement_area id="1" start_frame="None" stop_frame="None" plot_time_series="true" get_individual_FD="false"/>
<one_dimensional enabled="false"/>
<plot_time_series enabled="false"/>
<cut_by_circle enabled="false" radius="1.0" edges="10"/>
<output_voronoi_cells enabled="false" plot_graphs="false"/>
<individual_FD enabled="false" measurement_area_id="1"/>
<profiles enabled="false" grid_size_x="0.20" grid_size_y="0.20"/>
</method_D>
</JPSreport>
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geometry version ="0.5" caption="second life" gridSizeX="20" gridSizeY="20" unit="m">
<geometry version ="0.8" caption="second life" gridSizeX="20" gridSizeY="20" unit="m">
<rooms>
<room id="0" caption="hall" zpos="0.00">
<subroom id="0" closed="0" class="subroom">
......
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<geometry version ="0.5" caption="second life" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/jps_geometry.xsd" unit="m">
<geometry version ="0.8" caption="second life" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://xsd.jupedsim.org/jps_geometry.xsd" unit="m">
<rooms>
<room id="0" caption="hall" zpos="0.00">
<subroom id="0" closed="0" class="subroom">
......
<?xml version="1.0" encoding="UTF-8"?>
<JPSreport project="JPS-Project" version="0.5" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/jps_report.xsd">
<JPSreport project="JPS-Project" version="0.8" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../../xsd/jps_report.xsd">
<!-- geometry file -->
<geometry file = "geo_corridor.xml" />
<!-- trajectories file and format -->
......@@ -9,59 +9,50 @@
<path location="./" />
</trajectories>
<!-- all files in the directories will be used -->
<measurementAreas unit="m">
<area_B id="1" type="BoundingBox">
<!----give relative path based on the location inifile or give the absolute path--->
<scripts location="../../scripts/"/>
<measurement_areas unit="m">
<area_B id="1" type="BoundingBox" zPos="None">
<vertex x="-2.00" y="0.00" />
<vertex x="-2.00" y="1.50" />
<vertex x="2.00" y="1.50" />
<vertex x="2.00" y="0.00" />
<Length_in_movement_direction distance="4.0" />
<length_in_movement_direction distance="4.0" />
</area_B>
<area_L id="2" type="Line">
<area_L id="2" type="Line" zPos="None">
<start x="0.00" y="0.00" />
<end x="0.00" y="1.50" />
</area_L>
</measurementAreas>
<velocity>
<useXComponent>true</useXComponent>
<useYComponent>false</useYComponent>
<!-- The time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<halfFrameNumberToUse>10</halfFrameNumberToUse>
</velocity>
</measurement_areas>
<velocity frame_step="10" set_movement_direction="None" ignore_backward_movement="false"/>
<!-- frame_step is the time interval that used to calculate instantaneous velocity
of ped i [fr] here v_i = (X(t+frame_step/2) - X(t+frame_step/2))/frame_step. X is location. -->
<!-- Method A (Zhang2011a) Flow and Vel -->
<method_A enabled="true">
<!-- Time interval used to count the flow [fr] -->
<timeInterval unit="frame">
100
</timeInterval>
<!-- The coordinate of the line used to calculate the flow and velocity -->
<measurementArea id="2" />
<plot_time_series enabled="false"/>
<measurement_area id="2" frame_interval="100" plot_time_series="true"/>
</method_A>
<!-- Method B (Zhang2011a) Vel and Dens based on Tin and Tout -->
<method_B enabled="true">
<measurementArea id="1" />
<measurement_area id="1" />
</method_B>
<!-- Method C (Zhang2011a) Classical density and Vel -->
<method_C enabled="true">
<measurementArea id="1" />
<plot_time_series enabled="false"/>
<measurement_area id="1" plot_time_series="true"/>