Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Refactoring and testing of Interactor classes #1570

Closed
Show file tree
Hide file tree
Changes from 27 commits
Commits
Show all changes
30 commits
Select commit Hold shift + click to select a range
3f4d33b
Incomplete refactoring of HPathInteractor
swsrkty Sep 28, 2022
83670e9
Refactoring of Interactor classes and testing in plot module
swsrkty Oct 11, 2022
fb8532c
Testing Interactor classes
swsrkty Oct 12, 2022
4d7324b
Testing side, linear view and moving plotting path to MySideViewFigur…
swsrkty Oct 17, 2022
ebd73d0
Plotting path using pathpatch
swsrkty Oct 17, 2022
7e0b65d
Fixing class names and other errors
swsrkty Oct 18, 2022
a3dccc5
Fixing errors in testing
swsrkty Oct 18, 2022
ba27ad9
Fixing errors
swsrkty Oct 19, 2022
0eaec8d
Refactoring and testing in top, side and linear views
swsrkty Oct 26, 2022
60e98d0
Fixing errors
swsrkty Oct 27, 2022
ec41ade
Prototype CLI tool
swsrkty Oct 27, 2022
efde3cc
Fixing errors in refactoring
swsrkty Nov 1, 2022
8f94841
Fixing more errors in refactoring
swsrkty Nov 2, 2022
659fc7a
CLI tool with plotting flightpath
swsrkty Nov 2, 2022
9431884
update
joernu76 Nov 3, 2022
cc913b1
Merge remote-tracking branch 'upstream/joern7' into Refactor-interact…
swsrkty Nov 6, 2022
bdb4910
Fixing errors in refactoring SideView
swsrkty Nov 6, 2022
cfd0019
Fixing errors in the previous commit
swsrkty Nov 6, 2022
3f6d44b
Removing the use of WaypointsTableModel in plot module
swsrkty Nov 7, 2022
71ccd94
update
joernu76 Nov 7, 2022
fedcd65
Fixing plotting of labels while testing in plot module
swsrkty Nov 9, 2022
107acc2
Setting title for linear view for testing in plot module
swsrkty Nov 9, 2022
ba3079f
CLI tool script
swsrkty Nov 10, 2022
82fa1a3
Fixing an error in calling draw method in plot module
swsrkty Nov 10, 2022
9cd16a2
Adding config path parameter to the CLI tool
swsrkty Nov 11, 2022
a7e4083
Documentation for CLI tool
swsrkty Nov 11, 2022
cbe9208
Changing the directory of autoplot module
swsrkty Nov 14, 2022
ec7e4e5
Removing files related to the autoplot CLI tool
swsrkty Nov 16, 2022
d7a6f4f
Removing plot module
swsrkty Nov 16, 2022
b4143c0
Adding plot module
swsrkty Nov 17, 2022
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
74 changes: 74 additions & 0 deletions docs/autoplot.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,74 @@
mss autoplot (CLI Tool for automation)
======================================

A CLI tool which enables users to download a set of plots according to the given configuration. The configuration for downloading the plots is located in "mss_autoplot.json". In this file you can specify the default settings.

How to use
----------

The CLI tool has the following parameters:

Parameter Type Description
----------------------------------------
--cpath TEXT Path of the config file where the configuration is specified
--ftrack TEXT Flight track.
--itime TEXT Initial time.
--vtime TEXT Valid time.
--intv INTEGER Time interval.
--stime TEXT Starting time for downloading multiple plots with a fixed interval.
--etime TEXT Ending time for downloading multiple plots with a fixed interval.

A short description of how to start the program is given by the --help option.

Examples
~~~~~~~~

Here are a few examples on how to use this tool,

1. mss autoplot --cpath mss_autoplot.json

The above command downloads the required number of plots with the default settings from mss_autoplot.json into the output folder.

2. mss autoplot --cpath mss_autoplot.json --itime="" --vtime="2019-09-02T00:00:00"

The above command will download all the plots configured in mss_autoplot.json of initial time "" and valid time "2019-09-02T00:00:00". This can be used to create a daily "standard set" of plots with/without an actual flight track, e.g., for daily morning briefings

For downloading plots of multiple flight tracks, specify the flight track and it's configuration in mss_autoplot.json. This can be used to create a "standard set" of plots for all actual flights of a campaign. See below:

"automated_plotting_flights": [
["flight1", "section1", "vertical1", "filename1", "init_time1", "time1"]
["flight2", "section2, "vertical2", "filename2", "init_time2", "time2"]
]

3. mss autoplot --cpath mss_autoplot.json --stime="2019-09-01T00:00:00" --etime="2019-09-02T00:00:00" --intv=6

The above command will download plots of the with/without flight track from start time "2019-09-01T00:00:00" to end time "2019-09-02T00:00:00". The user would need to compulsorily specify the init_time and time in mss_autoplot.json inorder to use this functionality.


Settings file
--------------

This file includes configuration settings to generate plots in automated fashion. It includes,

- View
- URL of the WMS server
- URL of mscolab server
- List of layers to be plotted
- Style
- Elevation
- List of initial time and forecast hours
- List of flight paths
- List of operations (from MSCOLAB)
- Level
- Map section
- Resolution of the plot
- Path of output folder


If you don't have a mss_autoplot.json then default configuration is in place.

Store this mss_autoplot.json in a path, e.g. “$HOME/.config/msui”

**/$HOME/.config/msui/mss_autoplot.json**

.. literalinclude:: samples/config/msui/mss_autoplot.json.sample
1 change: 1 addition & 0 deletions docs/components.rst
Original file line number Diff line number Diff line change
Expand Up @@ -9,5 +9,6 @@ Components
mswms
mscolab
gentutorials
autoplot


96 changes: 96 additions & 0 deletions docs/samples/mss_autoplot.json.sample
Original file line number Diff line number Diff line change
@@ -0,0 +1,96 @@

{
"view":"topview"
"data_dir": "~/mssdata",
"filepicker_default": "default",

"import_plugins": {
"FliteStar": ["fls", "mslib.plugins.io.flitestar", "load_from_flitestar"],
"Text": ["txt", "mslib.plugins.io.text", "load_from_txt"]
},

"export_plugins": {
"Text": ["txt", "mslib.plugins.io.text", "save_to_txt"],
"KML": ["kml", "mslib.plugins.io.kml", "save_to_kml"],
"GPX": ["gpx", "mslib.plugins.io.gpx", "save_to_gpx"]
},


"layout": {
"topview": [963, 702],
"sideview": [913, 557],
"tableview": [1236, 424],
"immutable": false
},

"locations": {
"EDMO": [48.08, 11.28],
"Hannover": [52.37, 9.74],
"Hamburg": [53.55, 9.99],
"Juelich": [50.92, 6.36],
"Leipzig": [51.34, 12.37],
"Muenchen": [48.14, 11.57],
"Stuttgart": [48.78, 9.18],
"Wien": [48.20833, 16.373064],
"Zugspitze": [47.42, 10.98],
"Kiruna": [67.821, 20.336],
"Ny-Alesund": [78.928, 11.986]
},

"predefined_map_sections": {
"01 Europe (cyl)": {"CRS": "EPSG:4326",
"map": {"llcrnrlon": -15.0, "llcrnrlat": 35.0,
"urcrnrlon": 30.0, "urcrnrlat": 65.0}},
"02 Germany (cyl)": {"CRS": "EPSG:4326",
"map": {"llcrnrlon": 5.0, "llcrnrlat": 45.0,
"urcrnrlon": 15.0, "urcrnrlat": 57.0}},
"03 Global (cyl)": {"CRS": "EPSG:4326",
"map": {"llcrnrlon": -180.0, "llcrnrlat": -90.0,
"urcrnrlon": 180.0, "urcrnrlat": 90.0}},
"04 Shannon (stereo)": {"CRS": "EPSG:77752350",
"map": {"llcrnrlon": -45.0, "llcrnrlat": 22.0,
"urcrnrlon": 45.0, "urcrnrlat": 63.0}},
"05 Northern Hemisphere (stereo)": {"CRS": "EPSG:77790000",
"map": {"llcrnrlon": -45.0, "llcrnrlat": 0.0,
"urcrnrlon": 135.0, "urcrnrlat": 0.0}},
"06 Southern Hemisphere (stereo)": {"CRS": "EPSG:77890000",
"map": {"llcrnrlon": 45.0, "llcrnrlat": 0.0,
"urcrnrlon": -135.0, "urcrnrlat": 0.0}}
},

"new_flighttrack_template": ["Kiruna", "Ny-Alesund"],
"new_flighttrack_flightlevel": 250,
"num_interpolation_points": 201,
"num_labels": 10,

"WMS_request_timeout": 30,

"default_WMS": ["http://www.your-server.de/forecasts"],
"default_VSEC_WMS": ["http://www.your-server.de/forecasts"],
"default_LSEC_WMS": ["http://www.your-server.de/forecasts"],

"default_MSCOLAB": ["http://www.your-mscolab-server.de/"],
"WMS_login": {
"http://www.your-server.de/forecasts" : ["youruser", "yourpassword"]
},
"MSC_login": {
"http://www.your-mscolab-server.de" : ["youruser", "yourpassword"]
},

"automated_plotting_flights": [
["", "", "", "", "", ""]
],
"automated_plotting_hsecs": [
["", "", "", ""]
],
"automated_plotting_vsecs": [
["","", "", ""]
],
"automated_plotting_lsecs": [
["", "", ""]
]

"MSCOLAB_mailid": "",
"MSCOLAB_password": ""
"MSCOLAB_operations":[]
}
21 changes: 21 additions & 0 deletions mslib/msui/constants.py
Original file line number Diff line number Diff line change
Expand Up @@ -69,6 +69,27 @@
except IOError:
logging.error(f'"{MSUI_SETTINGS}" can''t be created')

MSS_AUTOPLOT = os.getenv('MSS_AUTOPLOT', os.path.join(MSUI_CONFIG_PATH, "mss_autoplot.json"))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

add a ToDo, # ToDo refactor to a function


# We try to create an empty MSUI_SETTINGS file if not existing
# but there can be a permission problem
if '://' in MSS_AUTOPLOT:
dir_path, file_name = fs.path.split(MSS_AUTOPLOT)
try:
_fs = fs.open_fs(dir_path)
if not _fs.exists(file_name):
with _fs.open(file_name, 'w') as fid:
fid.write("{}")
except fs.errors.CreateFailed:
logging.error(f'"{MSS_AUTOPLOT}" can''t be created')
else:
if not os.path.exists(MSS_AUTOPLOT):
try:
with open(MSS_AUTOPLOT, 'w') as fid:
fid.write("{}")
except IOError:
logging.error(f'"{MSS_AUTOPLOT}" can''t be created')

WMS_LOGIN_CACHE = {}
MSC_LOGIN_CACHE = {}

Expand Down
Loading