SIMPLACE Experiments folder structure |
Top Previous Next |
Until now the user simulations (solutions, projects, data) where in the project lap, inside the subfolder test. In order to separate the simulation runs from modules we created a new project simplacerun.
You can still use your simulations from the project lap, but we strongly advise to migrate your simulations to the new project.
Advantages:
•Programming code and Simulations are now in different projects
•You can commit/update your solutions to the repository, without interfering with changes made in the models
•Your data is better organized: instead of solutions/yourname, project/yourname, data/yourname you will keep it together in the directory yourname with the subdirectories solution, data, project.
Project structure
•src->net->simplace->
runs->yourname - here you keep your UnitTests, if you start your simulations as unit tests rather than by the GUI
modules->yourname - here you should keep copies of simcomponents you modified or new components you created
•simulation -
yourname
data - put here your weather, parameters etc.
misc - all the stuff, that is not directly used by your simulation like documentation, scripts for data processing etc.
project - your projects (.proj.xml)
solution - your solutions (.sol.xml)
•output
yourname - outputs of your simulation
You are free to organize the data inside the yourname directories to your requirements, but it is advised to keep data, solutions, projects and miscellanea in own subdirectories.
If you have a lot of different simulations you can use subdirectories
simulation
yourname
agmip
data
misc
project
solution
wascal
data
misc
project
solution
or in this way
simulation
yourname
data
agmip
wascal
misc
agmip
wascal
project
agmip
wascal
solution
agmip
wascal
What about the outputs?
As the outputs may produce a high amount of data, and as they can be reproduced (at least they should be reproduceable!), normally they shouldn't be stored in the versioning system. Keeping them inside a special folder output, which is excluded from the version control, makes it easier to commit your input data and solutions to the SVN.
Which folders should I commit?
src->net->simplace->
runs->yourname
modules->yourname
simulation -
yourname
Never commit any files or (sub)folders from the folder output! Don't commit any files or (sub)folders from another user's directory unless the user agrees.
How to migrate existing solutions to the new project?
1.Please check out a new project named simplacerun from the repository simplacemod /trunk/simplacerun/
2.Make an update on lapclient, if you use the GUI, as lapclient needs a reference to simplacerun in order to find the simulations
3.If they don't exist yet, make a folder inside simulation/ with your name and the subfolders as indicated above.
4.Copy your solutions .sol.xml files to simplacerun/simulation/yourname/solution (or to some subfolder, if you have special folders for each simulation)
5.Copy all the data, that is referenced in the interface section of your solutions to simplacerun/simulation/yourname/data
6.Copy your projects .proj.xml files to simplacerun/simulation/yourname/project
7.Go to your solution and project files and adapt path and filenames to the new locations, e.g.
for input files: <filename>anja/Anja_GecrosControl.xml</filename> to <filename>anja/data/Anja_GecrosControl.xml</filename>
and for output files: <filename>output/Anja_gecros_sumyieldout.csv</filename> to <filename>output/anja/Anja_gecros_sumyieldout.csv</filename>
8.If you use unit tests: Copy in the package explorer (not in the Navigator view!) your test file to simplacerun/src/net/simplace/runs/yourname
9.Go to the unit test and change the path for your solution and project, e.g.:
FWSimEngine.runProject(null, "anja/AnjaTestLintulSlim.sol.xml"); to FWSimEngine.runProject(null, "anja/solution/AnjaTestLintulSlim.sol.xml");
NOTE: For data and solution files, the system takes by default the path relative to simplacerun/simulation, for output files the system takes the path relative to simplacerun/. See WorkingDirectory how to make your solution independent from the location of your files.