Code Monkey home page Code Monkey logo

sharppy / sharppy Goto Github PK

View Code? Open in Web Editor NEW
215.0 39.0 110.0 82.49 MB

Sounding/Hodograph Analysis and Research Program in Python

Home Page: https://sharppy.github.io/SHARPpy/index.html

License: Other

Python 73.09% BlitzMax 10.23% TeX 2.29% Haskell 5.41% C++ 2.16% PureBasic 1.20% Elm 0.46% Parrot 0.60% Mathematica 0.21% Scheme 1.55% Ada 0.21% F# 0.50% Tcl 0.40% Erlang 0.15% Shell 0.47% Augeas 0.15% LOLCODE 0.15% Coq 0.21% Lex 0.36% Uno 0.21%
meteorology skew-t hodograph sounding

sharppy's Introduction

SHARPpy

Sounding/Hodograph Analysis and Research Program in Python

Test Status Build Status Anaconda-Server Badge Anaconda-Server Badge Coverage Status Anaconda-Server Badge

SHARPpy is a collection of open source sounding and hodograph analysis routines, a sounding plotting package, and an interactive, cross-platform application for analyzing real-time soundings all written in Python. It was developed to provide the atmospheric science community a free and consistent source of sounding analysis routines. SHARPpy is constantly updated and vetted by professional meteorologists and climatologists within the scientific community to help maintain a standard source of sounding routines.

The version of SHARPpy in this repository allows users to access NUCAPS, a satellite sounding product.

Important links:

Table of Contents

=======================================================================

Install Pre-requisites

[Return to Top]

You will need Python 3 to run SHARPpy. For instructions, visit the following websites:

You will need run a few simple commands in a command line program:

  • Linux/MacOS: Open the Terminal application.
  • Windows: Open the Anaconda Prompt application.

Note: If you are installing Anaconda for multiple users, ensure these additional steps are met, which includes checking the permissions using an administrator account.

=======================================================================

Install SHARPpy

[Return to Top]

For those wishing to run both the GUI and do scripting, we recommend you install the Python 3 Anaconda Python Distribution from Continuum Analytics. You can install SHARPpy from conda by using:

conda install -c conda-forge sharppy

Skip to the 'Running SHARPpy from the Command Line' section.

Download options

If you aren't downloading from conda forge, you can download sharppy using the following options.

Option 1: Manual download (easy)

You can manually download the coding by clicking the "Code" button at the top right of the repository, then select "Download Zip." Unzip the files in the directory that you want to permanently store them.

Option 2: Download using Git (intermediate)

If you have Git installed and are familiar with it, open the command line for your operating system (see above) to perform these steps.

git clone https://github.com/sharppy/SHARPpy

Install SHARPpy

Open the terminal (UNIX/Linux) or Anaconda Prompt (Windows) and change your directory to where you have downloaded SHARPpy (e.g. /home/{user}/SHARPpy).

cd /home/<user>/SHARPpy

Next, we to create an isolated Anaconda environment just for running SHARPpy with all the necessary libraries (using conda env create {options}; it may take several minutes to install the libraries). If you are interested, you can open the environment.yml file to see which libraries are used.

conda env create -f environment.yml

After creating the environment, we need to switch to this new environment (via conda activate {env_name}) which we have named devel.

conda activate devel

Run setup.py to update SHARPpy.

python setup.py install

Once the installation is complete, keep the terminal open and follow the steps in the next section to launch SHARPpy.

Running SHARPpy from the Command Line

In the command line, type the command sharppy to launch the program.

sharppy

If successful, a window will open which will give you access to soundings from NUCAPS, RAOBS, and select models. For instructions on using SHARPpy, see the “Display NUCAPS in SHARPpy” quick guide.

How to run SHARPpy next time you log on

If you close the terminal window, you will have to repeat the following steps:

  1. Open the terminal (Unix/Linux) or Anaconda Prompt (Windows)
  2. Switch your environment to devel ("conda activate devel")
  3. Type sharppy and the window should launch.
conda activate devel
sharppy

=======================================================================

SHARPpy Development Team

[Return to Top]

SHARPpy is currently managed by the following co-developers (in no particular order):

  • Patrick Marsh (SPC)
  • Kelton Halbert (UW-Madison)
  • Greg Blumberg (NASA GSFC)
  • Tim Supinie (OU School of Meteorology)
  • Rebekah Esmaili (Science and Technology Corp.)
  • Jeff Szkodzinski (Science and Technology Corp.)

sharppy's People

Contributors

aarande avatar brettjrob avatar jeff-szkodzinski avatar keltonhalbert avatar nguy avatar niallrobinson avatar pmarshwx avatar resmaili avatar tsupinie avatar wblumberg avatar zflamig avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

sharppy's Issues

Undefined Symbol Bug with Qt 4.8.6.0 and PySide 1.2.1 Linux

This is not a bug with SHARPpy specifically, but I wanted to open this in case any other Linux users encounter the same issue.

If your Anaconda Python Distribution updates your qt library, SHARPpy will not run. It appears to be a compatability issue with basemap 1.0.7 and matplotlib 1.4.3, which (seemingly) uses a different version of the qt libraries than PySide. If you have this issue, you will see an undefined symbol error, such as:

ImportError: /home/khalbert/anaconda/lib/python2.7/site-packages/PySide/QtGui.so: undefined symbol: ZN8QPainter10drawPixmapERK6QRectFRK7QPixmapS2

I'm currently working on some sort of workaround, but I have not made much progress on it yet.

All parameter functions need to have at least one argument object, the Profile object.

When Patrick began writing different param.py functions, each of them accepted a Profile object argument, but also had keyword arguments optionally passed to the function that could be used for the calculation of the parameter so precomputed indices could be used (for example, the effective_inflow_layer() would look for a mupcl keyword argument and a precomputed mupcl in the Profile object). If the precomputed indices weren't available in either the Profile object or the keyword arguments, the function would calculate the needed index.

For research purposes, I think each function in the params.py, sars.py and other functions need to follow this framework. That way someone running parameters (i.e. STP_CIN) on a large dataset would not need to worry about explicitly computing each individual term on their own when writing code. They would only need to use the one function. This would simplify the backend and make it easier to use and understand how to use.

I've started this process and already have these functions in this framework:
params.precip_eff()
params.sig_severe()
params.wndg()
params.mmp()
params.sherb()
params.esp()
params.ship()

I've been using the hasattr() and the kwargs.get() functions to pull this off. Patrick previously used the try, except to do the hasattr().

These functions are a little more complex and will need more heavy lifting to implement this framework (especially those that require effective inflow layer calculations):
params.scp()
params.stp_fixed()
params.stp_cin()
watch.possible_watch()
sars.hail()
sars.supercell()
watch.best_guess_precip()

Archive requested sounding files?

This is a request for enhancement.

Sometimes we download some pretty impressive/interesting sounding files. If one doesn't make screen captures of the sounding display when viewing them, you can't really go back very far to regenerate them for image viewing/capturing purposes (a day for model soundings and a week for observed soundings). It would be nice to be able to have the option to archive an interesting sounding file and load it again.

Thanks.

George

SPCWindow without GUI

Is it possible to generate the SPCWindow without the GUI? I'd like to script the automatic generation the SPC-style plots of some real-time HRRR forecast soundings for a few locations.

Can't install on Windows 8.1

Running windows 8.1 with Anaconda 2.2 installed. Followed instructions and used conda install PySide to install PySide.

Error says:
error

Add scipy and pillow to list of dependencies

Upon initial install of sharppy when I tried to run the full gui I got import errors regarding import of bytescale. It appears you need scipy and pillow for this to work and I was able to launch the gui after installing these using conda. These should be added to the docs along with PySide and numpy for dependencies.

Skew-T Zooming

The current state of zooming in the Skew-T window is pretty pathetic, and could use a revisit.

Add in DGZ onto the Skew-T

Need to add in the ability to put in the DGZ onto the Skew-T diagram. Should this remove the effective inflow layer? See the image below for an example:

winter_inset

Sharptab Scripting Requires PySide install

Hello All,

I noticed today when attempting to script with Sharppy using the sharptab module it failed if PySide was not present. It appears that since the init.py files are not empty it has to call everything from the toplevel imports in sharppy.init.py.

This seems a little heavy handed to not only requre PySide but import everything in not only sharppy but also PySide if you only want to run some calculations using the sharptab module. To use sharptab by itself triggers an import of sharptab, io, viz, and databases as well as QtGui and QtCore from PySide.

I think it would be ideal to be able to only import the sharptab submodule and run calculations with that even if you don't have PySide etc since you do not need it and it is wasted imports. You also may be working on a machine (i.e. AWIPS) that does not directly have easy access to that module.

Thanks,
Aaron

full_gui.py will not start

Hi,

I'm filing this issue on behalf of someone else. He's running 10.8.5 OS X and getting the following error:

Traceback (most recent call last):
  File "full_gui.py", line 633, in <module>
    win = MainWindow()
  File "full_gui.py", line 187, in __init__
    self.run = [ t for t in self.data_sources[self.model].getAvailableTimes() if t.hour in [0, 12] ][-1]
KeyError: 'Observed'

Thanks,
John

Centered Hodograph

The hodograph currently does not support centering on the mean wind vector.

SHARPpy GUI interpolate option

Rich Thompson offered the suggestion to add an option to the SHARPpy GUI to interpolate the observed or forecast sounding to 25 mb increments in order to make it easier to modifying the sounding graphically.

Error on install and startup with 'nam4km'

I downloaded the latest build this morning and did the python install. At the end of the install, the following error cropped up. For both the initial install yesterday, and the update today, I downloaded the zip file and unzipped it into the C:\Anaconda directory, so the location of setup.py is C:\Anaconda\SHARPpy-master. When updating, I made sure to choose to overwrite all

Processing SHARPpy-1.2.0-py2.7.egg
removing 'c:\anaconda\lib\site-packages\SHARPpy-1.2.0-py2.7.egg' (and everything under it)
creating c:\anaconda\lib\site-packages\SHARPpy-1.2.0-py2.7.egg
Extracting SHARPpy-1.2.0-py2.7.egg to c:\anaconda\lib\site-packages
File "c:\anaconda\lib\site-packages\SHARPpy-1.2.0-py2.7.egg\datasources\available.py", line 67
'nam4km':lambda dt: _availableat_psu('nam4km', dt)
^
SyntaxError: invalid syntax

SHARPpy 1.2.0 is already the active version in easy-install.pth

Installed c:\anaconda\lib\site-packages\sharppy-1.2.0-py2.7.egg
Processing dependencies for SHARPpy==1.2.0
Finished processing dependencies for SHARPpy==1.2.0

When trying to run full_gui.py from the command line, it gives me the following error

C:\Anaconda\SHARPpy-master\runsharp>python full_gui.py
Traceback (most recent call last):
File "full_gui.py", line 18, in
from datasources import data_source
File "C:\Anaconda\lib\site-packages\sharppy-1.2.0-py2.7.egg\datasources\data_source.py", line 7, in
import available
File "C:\Anaconda\lib\site-packages\sharppy-1.2.0-py2.7.egg\datasources\available.py", line 67
'nam4km':lambda dt: _availableat_psu('nam4km', dt)
^
SyntaxError: invalid syntax

Input surface T and dewpoint through popup menu and Theta E sampling

I was wondering if there was some code previously written on how to modify the portion to add an input popup menu to type in a surface temperature and dewpoint and mix out the sounding automatically instead of using the process of dragging the points, maybe up to like 850mb or a certain level. We have heard from some of our contacts at SPC that this process is already in place but we hadn't heard back on how it was implemented. We also have a technique at our office of making the superadiabatic lapse rate slightly differently based on whatever surface temperature is, say 92 vs 95. My question is has someone developed this previously and where in the code do we need to put this? I noticed there was a SKEWT py code to control the look of the GUI overall and it seemed to need to be in that area for the typing in of the surface temp/dewpoint and mixing out the sounding.

Also, I was wondering where can I do sampling of the Theta-E trace made in the SKEWT py code? I know there was a Theta-E trace made as an inset and its on THETAE py code but I need to sample the Theta-E as I go up with height in the SKEWT py code. Any ideas on how to do this also?

Thanks as anything will be a help!

Incorrect sounding placement for some sites

Hi,

When downloading and viewing forecast soundings from KEMP, it is obvious it is for somewhere else. All other nearby sounding sites appear to have soundings that correspond with what they look like in Bufkit. KEMP is not even close.

Looking in the databases folder at the model csv files, everything looks right for KEMP in terms of lat/lon, and the dot on the map is in the right location. However, there are two entries each for the same site in the RAP, HRR, SREF and NAM files, i.e. two identical lines.

In the GFS file, there is one line for KEMP, and another for 98009 with a slight difference in lat/lon. The 98009 profile comes up correctly in sharppy and corresponds with what the Bufkit forecast soundings look like for Emporia.

This is with SHARPpy Beta v1.2.0 El Reno.

Thanks.

George Phillips

Binary Distributions for OS X/Windows

Something that needs to be worked on is getting binary distributions of SHARPpy available for OS X and Windows (because let's face it - if you're using Linux, you know how to run a Python script). I've made some progress in this area using Py2App for Mac (Py2Exe is the Windows equivalent), but I've had some issues with it properly including all of the PySide libraries.

Redesign Sounding Selection Map

@tsupinie has already made significant strides in this direction in the map-selector branch. The only reason I am opening this is to be able to keep track of it for milestone purposes.

Model Forecast Soundings have no PWV Climo coloring

Tim noticed this this week...the model forecast soundings on the HOOT site don't have the PWV climatology...even for locations that are very close to radiosonde sites. He recommended we use the scipy.interpolate.griddata function to interpolate the PWV climatology mean and standard deviation values to other sites. I'm unsure of how well interpolating STD values would go, but I think this should work.

The only other issue would be extrapolation of places beyond the PWV climatology.

Inset swapping forces seg fault. - MAJOR BUG

On my machine (Mac OS X Mavericks), the right click inset swapping procedure will force the program to seg fault:

/Users/blumberg/anaconda/bin/pythonw: line 3: 2121 Segmentation fault: 11 /Users/blumberg/anaconda/python.app/Contents/MacOS/python "$@"

Python seg faults, and I am unable to figure out why. All Python code runs and it seems like the swapInset() function exits. The seg faulting usually happens after swapping 1 or more insets. Commanding an inset to swap seems to force this, and it doesn't matter which inset.

This looks like a PySide issue.

PWV Climo Text Color

The PWV climatology database is being called, but no colors are being assigned to the text in the thermo inset. A method for doing that needs to be implemented.

Custom Data Sources

Something that has been suggested and needed is the ability to add custom data sources. With WFOs wanting to use it, in addition to PECAN, I think this is an excellent idea. I know @tsupinie has already been making progress in this direction. Opening issue for milestone tracking purposes.

Bugs from Tim's 2/28/2015 pull request

1.) Zooming on the hodograph is broken. The actual line will zoom, but the background will not.
2.) The mean cloud-layer wind point is very fast and the point is far off from the hodograph. Looks like a units issue.
3.) After modifying the Skew-T diagram and then resetting the profile again, the keyboard buttons get disabled. Used to happen in previous iterations of SHARPpy and is a result of the SPCWindow loosing focus after interacting with an individual widget.

Linux Text Size Issue

Linux font sizes are different due in part to different display DPIs. Some portions of the program have been fixed, while others remain untouched. The Effective Inflow Layer text cuts off, the hodograph critical angle cuts out, and the font in the Possible Watch Type box is too large.

Changes to font sizes need to be made across the board to fix this issue.

oun

Ensemble Functionality

Here are some things we need to fix/add for the ensemble functions:

1.) Show the active ensemble member in the title in the GUI.
2.) Enable swapping of the active profile being displayed in the GUI.
3.) Enable the parcel trace drawing when the parcel selection is changed. (bug)
4.) Change the color of the lines representing the other members back to the red/green and make them thinner. The active profile should be the thickest.
5.) Disable the option to view a SARS match when the user is viewing an ensemble.

Recreate SPC Omega profile

This should happen only for the time being....we can add in other ways to visualize this. Example below:

winter_inset

SARS interactivity

Ability to click and load up the tier-1 SARS sounding matches next to the primary sounding in the SHARPpy GUI.

DCAPE Values

DCAPE values are still off from SPC values. Sometimes it's very close, other times it's just flat out way off. Needs to be looked into.

key-2
skewt

Profile Object Indices

The Profile Object currently calls all indices on load, which causes it to crash for certain datasets with non-convective environments. Not sure about what the best solution to this is, but one option is to have the indices be called individually or by group as needed, while still keeping them global variables.

SARS Supercell

SARS Supercell misses loose and close matches occasionally. Needs to be checked.

SHARPpy looks funky on Windows

Here is the most recent Windows screenshot showing SHARPpy with Kelton's changes to the GUI uploaded on December 1st, 2014. Looks like there are some positive changes with the thermo window, but more spacing is needed.

testsharppy

Fix hodograph boundary motion vectors

After looking at Rich's workshop presentation, I need to fix the 9-11 SR Wind and 0-6 km shear vectors that are plotted on the hodograph when plotting the boundary motion vectors. They are not plotted correctly.

Stations With Special Characters

Stations with special characters currently do not work for the model data. This is because the URLs on the data server use a different syntax (for example, # gets replaced with %23). It should be a relatively easy fix, but I'm opening an issue because it is something routinely forget about and should be fixed at some point.

full_gui.py will not start - SPC page unavailable

Windows 8.0 Enterprise, just installed SHARPpy 1.2.0 yesterday

Upon trying to run the application tonight:

C:\Users\Dan>python "C:\SHARPpy\runsharp\full_gui.py"
Traceback (most recent call last):
  File "C:\SHARPpy\runsharp\full_gui.py", line 635, in <module>
    win = MainWindow()
  File "C:\SHARPpy\runsharp\full_gui.py", line 191, in __init__
    self.__initUI()
  File "C:\SHARPpy\runsharp\full_gui.py", line 208, in __initUI
    self.view = self.create_map_view()
  File "C:\SHARPpy\runsharp\full_gui.py", line 358, in create_map_view
    view = MapWidget(self.data_sources[self.model], self.run, self.async, width=
800, height=500)
  File "c:\program files\enthought\canopy\user\lib\site-packages\sharppy-1.2.0-p
y2.7.egg\sharppy\viz\map.py", line 168, in __init__
    self.setDataSource(data_source, init_time, init=True)
  File "c:\program files\enthought\canopy\user\lib\site-packages\sharppy-1.2.0-p
y2.7.egg\sharppy\viz\map.py", line 209, in setDataSource
    self.setCurrentTime(data_time, init=init)
  File "c:\program files\enthought\canopy\user\lib\site-packages\sharppy-1.2.0-p
y2.7.egg\sharppy\viz\map.py", line 252, in setCurrentTime
    points = getPoints()
  File "c:\program files\enthought\canopy\user\lib\site-packages\sharppy-1.2.0-p
y2.7.egg\sharppy\viz\map.py", line 218, in <lambda>
    getPoints = lambda: self.cur_source.getAvailableAtTime(self.current_time)
  File "C:\Users\Dan\.sharppy\datasources\data_source.py", line 237, in getAvail
ableAtTime
    points = self._get('getAvailableAtTime', outlet, flatten=False, dt=dt)
  File "C:\Users\Dan\.sharppy\datasources\data_source.py", line 191, in _get
    prop.append(func(**kwargs))
  File "C:\Users\Dan\.sharppy\datasources\data_source.py", line 116, in getAvail
ableAtTime
    avail = available.availableat[self._name.lower()][self._ds_name.lower()](dt)

  File "C:\Users\Dan\.sharppy\datasources\available.py", line 15, in _availablea
t_spc
    text = urllib2.urlopen(recent_url).read()
  File "C:\Program Files\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_
64\lib\urllib2.py", line 127, in urlopen
    return _opener.open(url, data, timeout)
  File "C:\Program Files\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_
64\lib\urllib2.py", line 410, in open
    response = meth(req, response)
  File "C:\Program Files\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_
64\lib\urllib2.py", line 523, in http_response
    'http', request, response, code, msg, hdrs)
  File "C:\Program Files\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_
64\lib\urllib2.py", line 448, in error
    return self._call_chain(*args)
  File "C:\Program Files\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_
64\lib\urllib2.py", line 382, in _call_chain
    result = func(*args)
  File "C:\Program Files\Enthought\Canopy\App\appdata\canopy-1.5.2.2785.win-x86_
64\lib\urllib2.py", line 531, in http_error_default
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
urllib2.HTTPError: HTTP Error 403: Forbidden

As was mentioned in [https://github.com//issues/65](issue #65), the application will not start if SPC is in the middle of posting profiles - there's a page there (http://www.spc.noaa.gov/exper/soundings/15051800_OBS/), but it really wasn't there yet, which triggered the HTTP 403 error.

Rather than crashing, is it possible to have the URL fall back to the previous 6-hourly (or 12-hourly) standard synoptic time? In this case, falling back to to either 18Z or 12Z on 2015-05-17, so that the application would still load successfully?

NAN sometimes appears in the thermo window

Found this oddity where the NAN appeared as the SFC LFC for this data:

%TITLE%
OUN 150401/1200

LEVEL HGHT TEMP DWPT WDIR WSPD

%RAW%
1000.00, 84.00, -9999.00, -9999.00, -9999.00, -9999.00
970.00, 357.00, 13.00, 13.00, 205.00, 2.00
966.00, 391.15, 14.00, 13.30, -9999.00, -9999.00
954.00, 494.73, 14.60, 11.60, -9999.00, -9999.00
941.00, 609.24, 18.60, 8.60, -9999.00, -9999.00
940.92, 610.00, 18.59, 8.60, 165.00, 22.01
925.00, 753.00, 17.40, 8.40, 175.00, 22.01
918.00, 817.82, 16.80, 8.80, -9999.00, -9999.00
907.69, 914.00, 16.18, 10.34, 175.00, 27.00
898.00, 1005.33, 15.60, 11.80, -9999.00, -9999.00
891.00, 1071.92, 16.60, 7.60, -9999.00, -9999.00
875.75, 1219.00, 16.88, 3.73, 205.00, 16.01
869.00, 1284.86, 17.00, 2.00, -9999.00, -9999.00
850.00, 1473.00, 16.60, 0.60, 270.00, 4.99
844.91, 1524.00, 16.37, 0.53, 255.00, 4.00
820.00, 1778.11, 15.20, 0.20, -9999.00, -9999.00
815.06, 1829.00, 14.76, 0.35, 255.00, 14.01
787.00, 2124.31, 12.20, 1.20, -9999.00, -9999.00
786.09, 2134.00, 12.10, 1.28, 270.00, 25.00
761.00, 2404.73, 9.40, 3.40, -9999.00, -9999.00
757.95, 2438.00, 9.22, 2.61, 270.00, 22.01
751.00, 2514.49, 8.80, 0.80, -9999.00, -9999.00
730.43, 2743.00, 7.30, -1.49, 280.00, 22.01
703.84, 3048.00, 5.30, -4.55, 295.00, 23.00
700.00, 3093.00, 5.00, -5.00, 295.00, 23.00
697.00, 3128.07, 4.80, -5.20, -9999.00, -9999.00
678.00, 3352.90, 3.00, -8.00, -9999.00, -9999.00
652.79, 3658.00, 0.00, -7.76, 285.00, 21.00
647.00, 3729.78, -0.70, -7.70, -9999.00, -9999.00
613.00, 4158.35, -4.50, -17.50, -9999.00, -9999.00
607.00, 4235.81, -4.70, -23.70, -9999.00, -9999.00
604.58, 4267.00, -4.98, -23.90, 295.00, 20.01
578.00, 4618.65, -8.10, -26.10, -9999.00, -9999.00
559.03, 4877.00, -9.65, -38.83, 300.00, 13.00
556.00, 4919.09, -9.90, -40.90, -9999.00, -9999.00
531.00, 5272.25, -12.50, -39.50, -9999.00, -9999.00
516.33, 5486.00, -13.09, -39.11, 275.00, 18.01
516.00, 5490.88, -13.10, -39.10, -9999.00, -9999.00
500.00, 5730.00, -15.10, -43.10, 275.00, 19.00
485.00, 5958.70, -17.30, -42.30, -9999.00, -9999.00
476.17, 6096.00, -17.69, -45.64, 260.00, 27.99
476.00, 6098.63, -17.70, -45.70, -9999.00, -9999.00
451.00, 6498.52, -21.30, -39.30, -9999.00, -9999.00
441.00, 6663.04, -22.90, -34.90, -9999.00, -9999.00
434.00, 6779.88, -23.70, -30.70, -9999.00, -9999.00
425.00, 6932.31, -24.90, -33.90, -9999.00, -9999.00
420.47, 7010.00, -25.29, -31.71, 275.00, 29.00
418.00, 7052.67, -25.50, -30.50, -9999.00, -9999.00
408.00, 7227.46, -26.90, -31.70, -9999.00, -9999.00
400.00, 7370.00, -26.90, -31.90, 250.00, 36.00
390.00, 7552.56, -27.90, -33.90, -9999.00, -9999.00
386.34, 7620.00, -28.42, -34.42, 245.00, 37.01
368.00, 7967.63, -31.10, -37.10, -9999.00, -9999.00
331.00, 8709.79, -37.70, -46.70, -9999.00, -9999.00
310.59, 9144.00, -41.73, -48.64, 250.00, 52.99
302.00, 9335.26, -43.50, -49.50, -9999.00, -9999.00
300.00, 9380.00, -43.70, -49.70, 255.00, 54.00
294.00, 9515.17, -43.90, -52.90, -9999.00, -9999.00
290.00, 9606.63, -44.70, -54.70, -9999.00, -9999.00
283.63, 9754.00, -46.09, -54.19, 255.00, 58.99
280.00, 9839.37, -46.90, -53.90, -9999.00, -9999.00
274.00, 9981.96, -48.10, -55.10, -9999.00, -9999.00
259.00, 10350.10, -49.90, -74.90, -9999.00, -9999.00
258.49, 10363.00, -49.94, -75.60, 265.00, 42.00
252.00, 10528.29, -50.50, -84.50, -9999.00, -9999.00
250.00, 10580.00, -50.90, -84.90, 260.00, 33.99
235.23, 10973.00, -53.78, -83.52, 255.00, 29.99
224.38, 11278.00, -56.01, -82.44, 240.00, 31.00
223.00, 11317.79, -56.30, -82.30, -9999.00, -9999.00
204.00, 11884.03, -57.50, -74.50, 250.00, 48.00
202.00, 11946.64, -56.50, -73.50, -9999.00, -9999.00
200.00, 12010.00, -56.70, -73.70, 255.00, 54.00
199.00, 12041.62, -56.70, -74.70, -9999.00, -9999.00
194.33, 12192.00, -54.84, -76.56, 255.00, 54.99
194.00, 12202.91, -54.70, -76.70, -9999.00, -9999.00
186.00, 12471.42, -54.10, -86.10, -9999.00, -9999.00
180.00, 12680.39, -54.90, -86.90, -9999.00, -9999.00
175.00, 12859.76, -54.50, -87.50, -9999.00, -9999.00
168.00, 13119.45, -55.30, -87.30, -9999.00, -9999.00
165.00, 13234.02, -54.70, -87.70, -9999.00, -9999.00
161.00, 13390.07, -55.30, -87.30, -9999.00, -9999.00
155.00, 13631.23, -55.30, -87.30, -9999.00, -9999.00
151.00, 13797.63, -54.30, -87.30, -9999.00, -9999.00
150.00, 13840.00, -54.50, -87.50, 275.00, 56.99
145.80, 14021.00, -55.30, -88.07, 280.00, 58.99
133.00, 14606.09, -57.90, -89.90, -9999.00, -9999.00
132.49, 14630.00, -58.08, -90.02, 285.00, 31.00
120.13, 15240.00, -62.66, -93.07, 275.00, 43.01
117.00, 15404.74, -63.90, -93.90, -9999.00, -9999.00
114.34, 15545.00, -64.55, -94.32, 290.00, 31.00
108.77, 15850.00, -65.97, -95.23, 285.00, 20.01
106.00, 16007.19, -66.70, -95.70, -9999.00, -9999.00
100.00, 16360.00, -67.10, -96.10, 275.00, 25.00
92.80, 16806.80, -69.30, -97.30, 250.00, 29.00
88.80, 17069.00, -69.39, -97.39, 260.00, 33.99
84.30, 17377.84, -69.50, -97.50, -9999.00, -9999.00
79.00, 17768.75, -64.10, -94.10, -9999.00, -9999.00
73.90, 18172.65, -67.30, -96.30, -9999.00, -9999.00
72.50, 18288.00, -66.52, -95.52, 290.00, 15.00
70.00, 18500.00, -65.10, -94.10, 310.00, 13.00
69.50, 18543.70, -64.70, -94.70, -9999.00, -9999.00
64.80, 18968.88, -66.70, -95.70, -9999.00, -9999.00
63.90, 19053.81, -64.70, -94.70, -9999.00, -9999.00
62.30, 19208.91, -63.70, -93.70, -9999.00, -9999.00
58.10, 19635.59, -64.90, -94.90, -9999.00, -9999.00
54.20, 20062.20, -61.90, -91.90, -9999.00, -9999.00
51.13, 20422.00, -62.48, -92.48, 330.00, 0.99
50.00, 20560.00, -62.70, -92.70, 60.00, 8.00
44.08, 21336.00, -62.86, -92.86, 60.00, 8.99
42.90, 21503.93, -62.90, -92.90, -9999.00, -9999.00
39.95, 21946.00, -61.46, -92.02, 70.00, 18.01
38.04, 22250.00, -60.48, -91.41, 50.00, 16.01
37.70, 22304.85, -60.30, -91.30, -9999.00, -9999.00
34.49, 22860.00, -60.53, -91.53, 80.00, 19.00
32.84, 23165.00, -60.65, -91.65, 50.00, 16.01
32.20, 23287.40, -60.70, -91.70, -9999.00, -9999.00
30.30, 23667.59, -58.90, -89.90, -9999.00, -9999.00
30.00, 23730.00, -59.30, -90.30, 65.00, 27.99
28.37, 24079.00, -59.70, -90.70, 80.00, 27.00
27.02, 24384.00, -60.05, -91.05, 75.00, 24.01
26.10, 24599.70, -60.30, -91.30, -9999.00, -9999.00
23.50, 25256.26, -58.50, -89.50, -9999.00, -9999.00
23.34, 25298.00, -58.49, -89.49, 60.00, 25.99
21.19, 25908.00, -58.37, -89.37, 80.00, 33.00
20.00, 26270.00, -58.30, -89.30, 75.00, 33.99
16.64, 27432.00, -57.12, -88.86, 75.00, 39.01
15.60, 27840.03, -56.70, -88.70, -9999.00, -9999.00
13.70, 28667.94, -54.50, -87.50, -9999.00, -9999.00
12.90, 29056.08, -51.50, -84.50, -9999.00, -9999.00
11.90, 29578.73, -52.70, -85.70, -9999.00, -9999.00
10.36, 30480.00, -50.20, -84.16, 65.00, 33.99
10.30, 30516.98, -50.10, -84.10, -9999.00, -9999.00
10.00, 30710.00, -50.50, -84.50, 60.00, 33.99
9.60, 30975.70, -51.10, -85.10, -9999.00, -9999.00
9.43, 31090.00, -50.06, -84.26, 65.00, 37.01
8.80, 31547.88, -45.90, -80.90, -9999.00, -9999.00
8.40, 31856.80, -46.70, -81.70, -9999.00, -9999.00
8.22, 32004.00, -44.87, -79.87, 45.00, 20.01
8.20, 32017.24, -44.70, -79.70, -9999.00, -9999.00
8.00, 32182.15, -45.30, -80.30, -9999.00, -9999.00
%END%

----- Parcel Information-----
*** 100mb MIXED LAYER PARCEL ***
LPL: P=970 T=69F Td=50F
MLCAPE: 0 J/kg
MLCINH: 0 J/kg
MLLI: 1 C
MLLI(300mb): 3 C
3km MLCAPE: 0 J/kg
NCAPE: 0.00 m/s2

MLLCL: 827mb 1353m
MLLFC: -9999mb -9999m
MLEL: 827mb 1353m
MLMPL: 827mb 1353m
All heights AGL

*** MU PARCEL IN LOWEST 400mb ***
LPL: P=898 T=60F Td=53F
MUCAPE: 562 J/kg
MUCINH: -238 J/kg
MULI: -3 C
MULI(300mb): -2 C
3km MUCAPE: 0 J/kg
NCAPE: 0.09 m/s2

MULCL: 848mb 1135m
MULFC: 653mb 3301m
MUEL: 264mb 9868m
MUMPL: 185mb 12149m
All heights AGL

*** SFC PARCEL ***
LPL: P=970 T=55F Td=55F
SBCAPE: 0 J/kg
SBCINH: 0 J/kg
SBLI: 3 C
SBLI(300mb): 5 C
3km SBCAPE: 0 J/kg
NCAPE: 0.00 m/s2

SBLCL: 970mb 0m
SBLFC: -9999mb -9999m
SBEL: 970mb 0m
SBMPL: 970mb 0m
All heights AGL

----- Misc Thermodynamic Parameters -----
Melting Level: 10828.1
Conv Temp: 30.5
WBZ height: 9112.5
DCAPE: 1279.1

----- Moisture -----
Precip Water: 0.81 in
0-1 km mean W: 7.9 g/Kg
0-3 km mean W: 5.8 g/Kg
SFC-850 mb mean W: 7.6 g/Kg

500 mb W: 0.2 g/Kg
700 mb W: 3.8 g/Kg
850 mb W: 4.7 g/Kg
925 mb W: 7.5 g/Kg
SFC RH: 100 %

-----Delta T and Lapse Rates -----
700-500mb 20 C 7.9 C/km
850-500mb 32 C 7.6 C/km
0-3 km 10 C 3.7 C/km
3-6 km 23 C 7.9 C/km

----- Vertical Shear -----
0-1 km BWD 7 kt
0-3 km BWD 22 kt
0-6 km BWD 27 kt
0-6 km mean wind 13.0 kt

----- Storm_Relative Winds/Shear -----
Bunkers storm motion 326/14 kt
0-1 km SRH 108 ms/s2
0-3 km SRH 201 ms/s2

----- Effective Inflow Layer Parameters -----
Effective inflow base 648 m AGL
Effective inflow top 648 m AGL
Effective SRH 0 ms/s2
Effective BWD 18 kt

----- Composite Parameters -----
Effective-layer SCP 0.0
Effective-layer STP 0.0
Fixed-layer STP 0.0
SHIP 0.0

----- Fire Weather -----
Fosberg Index 1

screen shot 2015-04-01 at 3 14 33 pm

oun

el-reno reminder?

It took me several tries to run the current version of SHARPpy before I thought to re-run the setup.py install. You might want to reminder folks that have downloaded previous versions that they will need to do the same before starting the latest release.

SPC SHIP equation is incorrect

SHIP parameter displays a significant difference between SHARPPy and SPC. Refer to images below. STP is off too, but the differences in 0-1 SRH and CAPE are enough to throw the value off by that much (I hand calculated this.) This value compares pretty well (56 knots) to SPC though. I've looked at both the SPC documentation for each of these:

http://www.spc.noaa.gov/sfctest/help/help_sigh.html

SHIP = [(MUCAPE j/kg) * (Mixing Ratio of MU PARCEL g/kg) * (700-500mb LAPSE RATE c/km) * (-500mb TEMP C) * (0-6km Shear m/s) ] / 44,000,000

Given that MUCAPE is 5769 J/kg, 700-500 mb lapse rate is 8.7 C/km, 500 mb temp is -11.1 C, and 0-6 shear is 28.8 m/s (all from SHARPPy and compare well to SPC) and that SHARPPy calculates the MU Parcel mixing ratio as 19.68 g/kg…which looking at a Skew-T seems reasonable given the surface dew point. This means that SPC must be calculating a MU parcel mixing ratio of at most 11 g/kg to be getting the SHIP values indicated. Otherwise their equation listed online is wrong, or it is incorrectly coded in NSHARP.

Using the test soundings (6/16/2014 OAX 19 UTC)
last
skewt

STP Inset

The STP inset is having scaling issues, where the line through the distributions doesn't quite match up to the value in the left text inset. It has something to do with the top/bottom padding in the window. The issue is almost nonexistent on Mac, Linux tends to display the issue more.

Color-blindness options

I was thinking that SHARPpy has a lot of color-contrast, which can be difficult for people who have color-blindness. Especially the red/green variety, since it's the most common, and we have a lot of those colors. So maybe it would be good to have an option for changing colors or something else for color-blindness.

Allow + and - keys to zoom in/out map

Greetings, right now I can zoom in and out on the Sounding Picker with my mouse wheel, then can click and drag as needed to the location to query for soundings.

However, I had noticed that there isn't a zoom based keyboard key enabled, or coded in. Would it be possible to add in, or capture the + and - keys on the numpad/main-keyboard to zoom in and out?

To demonstrate this a bit more visually on the idea... I set the mouse cursor to have focus in the map area. I would place the mouse cursor where I would like to zoom in at. I press the + or - keys to zoom in or out at that set point. The application will then zoom-to-point of where the mouse is at.

I think Gibson Ridge software has a similar style when using the zoom with the mouse scroller to 'zoom-to-point'. Whereas here, it'd be keyboard and mouse pointer zoom-based, without the scroller.

edit; I appear to be unable to assign a label of 'enhancement'. :(

All Model Soundings Disappeared Suddenly

Hi,
My name is Carl, I have been a SkyWarn Spotter now for many years. I have really been enjoying the SHARPpy program for the past month or so since I installed it on my system. However today none of the model's will load only the observed sounding will. When I attempt to load a model sounding from the 4km NAM for example here is what I get in my command window:
Traceback (most recent call last):
File "G:\Anaconda\SHARPpy\runsharp\full_gui.py", line 63, in finish
callback(ret_val)
File "G:\Anaconda\SHARPpy\runsharp\full_gui.py", line 441, in update
self.run_dropdown.addItem(data_time.strftime(MainWindow.run_format))
AttributeError: 'str' object has no attribute 'strftime'

I hope it is nothing serious and it will be working again soon. Thanks for a great program and any help you provide

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.