User can run SEAMCAT from Command Line which helps if you want just to run simulation and get the results. This feature is useful to run SEAMCAT simulation on number of already prepared workspaces, or if resources of the computer is an issue. In Command Line SEAMCAT just run the simulation on already prepared workspace and Graphical User Interface is not launched. Find below some tips for using SEAMCAT in a command line environment.
A command line launch of SEAMCAT (i.e. without GUI) is possible using the same seamcat.jar file that you have downloaded. From the command line with a workspace file called "myWorkspace.sws" the following command will It will launch the workspace and save the results in myWorkspace.swr by default.
java -cp seamcat.jar org.seamcat.CommandLine myWorkspace.sws |
---|
Several options are possible. The result file name can be changed by using the option: result=myWorkspaceResults.swr and the number of events can be specified by using the option: events=12345. The example below uses all these parameters:
java -cp seamcat.jar org.seamcat.CommandLine myWorkspace.sws result=myWorkspaceResults.swr events=12345 |
---|
you will see the following when setting 12 events:
$ java -cp seamcat.jar org.seamcat.CommandLine myWorkspace.sws result=myWorkspaceResults.swr events=12 Initializing log4j with basic configuration [[======================================================================]] Simulated 12 events Simulated performed on: 8 processor Total simulation duration: 0.033 second Event generation duration: 0.03 second Calculation rate: 400 events/second Simulation date: 2020-03-18 17:34:21 Simulation seed: 8425679684002480147 |
---|
If there is an issue with Java machine memory size, user can increase memory for the simulation, for e.g.
java -Xms4069M -Xmx6144M -cp SEAMCAT_5.4.2.jar org.seamcat.CommandLine Workspace="test1.sws" Result="test1run.swr" events=4000 |
---|
Parameter | Value | Explanation | Example | Needed | |
---|---|---|---|---|---|
Workspace | String | Name and relative path of the workspace | Workspace="Files/WS_PMSE_HH-LTE_UE_Cell_UT.sws" | Obligatory | |
Result | String | Name and relative path of the result file | Result="Files/Test_OFDMA_DL.swr" | Optional | if not supplied CL will name result file same as Workspace with .swr extension and save it in same folder where workspace is situated |
events | Integer | Number of events run in the simulation | events = 20000 | Optional | if not supplied CL will run with No events specified in workspace |
tformat | String | Terrain data format used in the terrain calculations Recognized tformat strings:
| tformat=SRTM_1as_bil_v3 | Optional | If not supplied CL will notify user of missing this parameter and use settings from workspace |
tpath | String | Absolute path of the terrain data files used for the terrain calculations | tpath="C:\Users\zeljko.tabakovic\OneDrive - ECO\Work Folders_One\SEAMCAT_new\Digital Terrain_bil\SRTM1" | Optional | If not supplied CL will notify user of missing this parameter and use settings from workspace |
Extracting vector results from the workspace results
Once your simulation is done, you can either open the .swr results file from the SEAMCAT GUI or it is possible to extract the vector results in a separate file directly from command line.
java -cp seamcat.jar org.seamcat.CommandLine myWorkspaceResults.swr > myVectorResults.txt |
---|
It opens Vector selection. Running the above code will generate a new file in .txt format as shown below.
It is possible to concatenate results in output result file with >> .
java -cp seamcat.jar org.seamcat.CommandLine myWorkspaceResults.swr >> myVectorResults.txt |
---|
For automated process user can select vector to put in file like shown below
java -cp SEAMCAT_COMMANDLINE_5.4.2.jar org.seamcat.CommandLine Files\Workspace26.swr vector=all> Results26.xls java -cp SEAMCAT_COMMANDLINE_5.4.2.jar org.seamcat.CommandLine Files\Workspace26.swr vector=3> Results26.xls |
---|
The vector results will contain the following vectors: the number of events, iRSSunwanted, iRSSblocking, the dRSS vector, the iRSSunwanted+blocking. and results from EPP-s.
Query on swr results (will work from v.5.5.1 ALPHA 2 and versions after)
The query string can be any string in the format described here: https://www.w3.org/TR/xpath-10/
java -cp seamcat-application-5.5.1-loctime-1.jar org.seamcat.CommandLine "WS_Simple_7_eEPP.swr" query="//Single[contains(@name, 'FDP')]" > FDresult.txt java -cp seamcat-application-5.5.1-loctime-1.jar org.seamcat.CommandLine "WS_Simple_7_eEPP.swr" query="//Single[contains(@name, 'C / I [unwanted]')]" >> FDresult.txt java -cp seamcat-application-5.5.1-loctime-1.jar org.seamcat.CommandLine "WS_Simple_7_eEPP.swr" query="//Single[@name='FDP']" >> FDresult.txt java -cp seamcat-application-5.5.1-loctime-1.jar org.seamcat.CommandLine "WS_Simple_7_eEPP.swr" query="//Single[@name='FDP']" filter=value >> FDresult.txt java -cp seamcat-application-5.5.1-loctime-1.jar org.seamcat.CommandLine "WS_Simple_7_eEPP.swr" query="//Single[contains(@name, 'FDP')]" filter=value >> FDresult.txt |
---|
- extracts all Single items containing FDP in name
group="Fractional Degradation of Performance", name="FDP", type="double", unit="%", value="44.41316251798719"
group="Fractional Degradation of Performance", name="FDP - Long Term", type="double", unit="%", value="31.86399735657708"
group="Fractional Degradation of Performance", name="FDP - Short Term", type="double", unit="%", value="12.549165161410137"
- extracts all Single items containing C/I in name
group="Interference Compatibility Calculations (C > receiver sensitivity)", name="C / I [unwanted]", type="double", unit="%", value="35.35756154747949"
- extracts all Single item where name is =FDP
group="Fractional Degradation of Performance", name="FDP", type="double", unit="%", value="44.41316251798719"
- extracts all Single item where name is =FDP and get only values
44.41316251798719
- extracts all Single items containing FDP in name and get only values
44.41316251798719
31.86399735657708
12.549165161410137
You can also use some command like cut to clean-up the data you want. For instance, in Linux (Unix) environment, you can use cut command. For example, if you are only interested in the “number of events” and “iRSSunwnated”, you should use the following command:
cut -d$'\t' -f1,2 myVectorResults.txt > newFile.txt |
---|
In Windows environment you can use command:
FOR /F "tokens=2-3 delims= " %i in (myVectorResults.txt) do @echo %i %j %k |
---|