2.8 Running from the command line

 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 

ParameterValueExplanationExampleNeeded
WorkspaceStringName and relative path of the workspace Workspace="Files/WS_PMSE_HH-LTE_UE_Cell_UT.sws"Obligatory
ResultStringName and relative path of the result fileResult="Files/Test_OFDMA_DL.swr"Optionalif not supplied CL will name result file same as Workspace with .swr extension and save it in same folder where workspace is situated
eventsIntegerNumber of events run in the simulationevents = 20000Optionalif not supplied CL will run with No events specified in workspace
tformatString

Terrain data format used in the terrain calculations

Recognized tformat strings:

  • SRTM_1as_bil_v3
  • SRTM_1as_bil_v2
  • SRTM_3as_bil_v2
  • GeoTIFF
tformat=SRTM_1as_bil_v3OptionalIf not supplied CL will notify user of missing this parameter and use settings from workspace
tpathStringAbsolute path of the terrain data files used for the terrain calculationstpath="C:\Users\zeljko.tabakovic\OneDrive - ECO\Work Folders_One\SEAMCAT_new\Digital Terrain_bil\SRTM1"OptionalIf 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