mirror of
https://github.com/Unidata/python-awips.git
synced 2025-02-23 22:57:56 -05:00
merge 16.2.2 updates to master-python3
This commit is contained in:
commit
b26f1b15d3
32 changed files with 2809 additions and 198 deletions
66
README.rst
66
README.rst
|
@ -1,15 +1,17 @@
|
||||||
Python Data Access Framework for AWIPS II
|
Python Data Access Framework for AWIPS II
|
||||||
=========================================
|
=========================================
|
||||||
|
|
||||||
.. image:: https://img.shields.io/pypi/v/python-awips.svg
|
|PyPI| |LatestDocs|
|
||||||
|
|
||||||
|
.. |PyPI| image:: https://img.shields.io/pypi/v/python-awips.svg
|
||||||
:target: https://pypi.python.org/pypi/python-awips/
|
:target: https://pypi.python.org/pypi/python-awips/
|
||||||
:alt: PyPI Package
|
:alt: PyPI Package
|
||||||
|
|
||||||
.. image:: https://img.shields.io/pypi/dm/python-awips.svg
|
.. |PyPIDownloads| image:: https://img.shields.io/pypi/dm/python-awips.svg
|
||||||
:target: https://pypi.python.org/pypi/python-awips/
|
:target: https://pypi.python.org/pypi/python-awips/
|
||||||
:alt: PyPI Downloads
|
:alt: PyPI Downloads
|
||||||
|
|
||||||
.. image:: https://readthedocs.org/projects/pip/badge/?version=latest
|
.. |LatestDocs| image:: https://readthedocs.org/projects/pip/badge/?version=latest
|
||||||
:target: http://python-awips.readthedocs.org/en/latest/
|
:target: http://python-awips.readthedocs.org/en/latest/
|
||||||
:alt: Latest Doc Build Status
|
:alt: Latest Doc Build Status
|
||||||
|
|
||||||
|
@ -19,59 +21,33 @@ Install
|
||||||
- pip install python-awips
|
- pip install python-awips
|
||||||
|
|
||||||
Requirements
|
Requirements
|
||||||
|
------------
|
||||||
|
|
||||||
|
- Python 2.7 minimum
|
||||||
|
- pip install numpy shapely
|
||||||
|
- pip install metpy enum34 - to run Jupyter Notebook examples
|
||||||
|
|
||||||
|
Documentation
|
||||||
-------------
|
-------------
|
||||||
|
|
||||||
- Python 2.7 or later
|
* http://python-awips.readthedocs.org/en/latest/
|
||||||
- pip install numpy shapely
|
* http://nbviewer.jupyter.org/github/Unidata/python-awips/tree/master/examples/notebooks
|
||||||
|
|
||||||
From Github
|
Install from Github
|
||||||
-----------
|
-------------------
|
||||||
|
|
||||||
- git clone https://github.com/Unidata/python-awips.git
|
- git clone https://github.com/Unidata/python-awips.git
|
||||||
- cd python-awips
|
- cd python-awips
|
||||||
- python setup.py install
|
- python setup.py install
|
||||||
|
|
||||||
|
|
||||||
Install for AWIPS II Python
|
Install for AWIPS (/awips2/python)
|
||||||
--------------------
|
-----------------------------------------
|
||||||
|
|
||||||
AWIPS II >=15.1.3 (March 2016) has `python-awips` installed in /awips2/python, as well as a full meteorological data stack (metpy, matplotlib, numpy, etc).
|
AWIPS II >=15.1.3 (March 2016) has `python-awips` bundled with the awips2-server and awips2-cave groups, as well as a full meteorological data stack (metpy, matplotlib, numpy, etc).
|
||||||
|
|
||||||
For AWIPS II systems 15.1.2 and lower:
|
Easy install on an AWIPS system
|
||||||
|
|
||||||
- wget https://bootstrap.pypa.io/ez_setup.py -O - | /awips2/python/bin/python
|
- wget https://bootstrap.pypa.io/ez_setup.py -O - | /awips2/python/bin/python
|
||||||
- /awips2/python/bin/easy_install pip
|
- /awips2/python/bin/easy_install pip
|
||||||
- /awips2/python/bin/pip install python-awips
|
- /awips2/python/bin/pip install python-awips
|
||||||
|
|
||||||
Grid Inventory
|
|
||||||
--------------
|
|
||||||
|
|
||||||
A short script to request available grid names from an EDEX server::
|
|
||||||
|
|
||||||
#!python
|
|
||||||
from awips.dataaccess import DataAccessLayer
|
|
||||||
|
|
||||||
# Set host
|
|
||||||
DataAccessLayer.changeEDEXHost("edex-cloud.unidata.ucar.edu")
|
|
||||||
|
|
||||||
# Init data request
|
|
||||||
request = DataAccessLayer.newDataRequest()
|
|
||||||
|
|
||||||
# Set datatype
|
|
||||||
request.setDatatype("grid")
|
|
||||||
|
|
||||||
#
|
|
||||||
# getAvailableLocationNames method will return a list of all available models
|
|
||||||
#
|
|
||||||
# LocationNames mean different things to different plugins beware...radar is icao,
|
|
||||||
# satellite is sector, etc
|
|
||||||
#
|
|
||||||
available_grids = DataAccessLayer.getAvailableLocationNames(request)
|
|
||||||
for grid in available_grids:
|
|
||||||
print grid
|
|
||||||
|
|
||||||
Documentation
|
|
||||||
------------------
|
|
||||||
|
|
||||||
* http://python-awips.readthedocs.org/en/latest/
|
|
||||||
* `Jupyter Notebook Examples <http://nbviewer.jupyter.org/github/Unidata/python-awips/tree/master/examples/notebooks/>`_
|
|
||||||
|
|
|
@ -28,6 +28,21 @@ inter-process communication.
|
||||||
|
|
||||||
image
|
image
|
||||||
|
|
||||||
|
License
|
||||||
|
-------
|
||||||
|
|
||||||
|
The AWIPS software package released by the Unidata Program Center is considered to
|
||||||
|
be in the public domain since it is released without proprietary code. As such, export
|
||||||
|
controls do not apply. Any person is free to download, modify, distribute, or share
|
||||||
|
Unidata AWIPS in any form. Entities who modify or re-distribute Unidata AWIPS
|
||||||
|
software are encouraged to conduct their own FOSS/COTS entitlement/license review
|
||||||
|
to ensure that they remain compatible with the associated terms (see
|
||||||
|
FOSS_COTS_License.pdf at `https://github.com/Unidata/awips2 <https://github.com/Unidata/awips2>`_).
|
||||||
|
|
||||||
|
|
||||||
|
About AWIPS
|
||||||
|
-----------
|
||||||
|
|
||||||
The primary AWIPS II application for data ingest, processing, and
|
The primary AWIPS II application for data ingest, processing, and
|
||||||
storage is the Environmental Data EXchange (**EDEX**) server; the
|
storage is the Environmental Data EXchange (**EDEX**) server; the
|
||||||
primary AWIPS II application for visualization/data manipulation is the
|
primary AWIPS II application for visualization/data manipulation is the
|
||||||
|
@ -44,25 +59,27 @@ AWIPS II Python Stack
|
||||||
---------------------
|
---------------------
|
||||||
|
|
||||||
A number of Python packages are bundled with the AWIPS II EDEX and CAVE
|
A number of Python packages are bundled with the AWIPS II EDEX and CAVE
|
||||||
installations, on top of base Python 2.7.9.
|
installations.
|
||||||
|
|
||||||
|
|
||||||
====================== ============== ==============================
|
====================== ============== ==============================
|
||||||
Package Version RPM Name
|
Package Version RPM Name
|
||||||
====================== ============== ==============================
|
====================== ============== ==============================
|
||||||
Python 2.7.9 awips2-python
|
Python 2.7.10 awips2-python
|
||||||
**awips** **0.9.3** **awips2-python-awips**
|
**awips** **0.9.5** **awips2-python-awips**
|
||||||
basemap 1.0.7 awips2-python-basemap
|
basemap 1.0.7 awips2-python-basemap
|
||||||
cartopy 0.13.0 awips2-python-cartopy
|
cartopy 0.13.0 awips2-python-cartopy
|
||||||
cherrypy 3.1.2 awips2-python-cherrypy
|
cherrypy 3.1.2 awips2-python-cherrypy
|
||||||
cycler 0.10.0 awips2-python-cycler
|
cycler 0.10.0 awips2-python-cycler
|
||||||
cython 0.23.4 awips2-python-cython
|
cython 0.23.4 awips2-python-cython
|
||||||
dateutil 2.5.0 awips2-python-dateutil
|
dateutil 2.5.0 awips2-python-dateutil
|
||||||
|
gfe 1.0.0 awips2-python-gfe
|
||||||
h5py 1.3.0 awips2-python-h5py
|
h5py 1.3.0 awips2-python-h5py
|
||||||
|
jep 3.4.1 awips2-python-jep
|
||||||
matplotlib 1.5.1 awips2-python-matplotlib
|
matplotlib 1.5.1 awips2-python-matplotlib
|
||||||
metpy 0.3.0 awips2-python-metpy
|
metpy 0.3.0 awips2-python-metpy
|
||||||
nose 0.11.1 awips2-python-nose
|
nose 0.11.1 awips2-python-nose
|
||||||
numpy 1.10.4 awips2-python-numpy
|
numpy 1.8.0 awips2-python-numpy
|
||||||
pil 1.1.6 awips2-python-pil
|
pil 1.1.6 awips2-python-pil
|
||||||
pint 0.7.2 awips2-python-pint
|
pint 0.7.2 awips2-python-pint
|
||||||
pmw 1.3.2 awips2-python-pmw
|
pmw 1.3.2 awips2-python-pmw
|
||||||
|
@ -72,7 +89,7 @@ pygtk 2.8.6 awips2-python-pygtk
|
||||||
pyparsing 2.1.0 awips2-python-pyparsing
|
pyparsing 2.1.0 awips2-python-pyparsing
|
||||||
qpid 0.32 awips2-python-qpid
|
qpid 0.32 awips2-python-qpid
|
||||||
scientific 2.8 awips2-python-scientific
|
scientific 2.8 awips2-python-scientific
|
||||||
scipy 0.17.0 awips2-python-scipy
|
scipy 0.9.0 awips2-python-scipy
|
||||||
shapely 1.5.9 awips2-python-shapely
|
shapely 1.5.9 awips2-python-shapely
|
||||||
six 1.10.0 awips2-python-six
|
six 1.10.0 awips2-python-six
|
||||||
tables 2.1.2 awips2-python-tables
|
tables 2.1.2 awips2-python-tables
|
||||||
|
|
|
@ -65,7 +65,7 @@ author = 'Unidata'
|
||||||
# built documents.
|
# built documents.
|
||||||
#
|
#
|
||||||
# The short X.Y version.
|
# The short X.Y version.
|
||||||
version = '0.9.3'
|
version = '0.9.5'
|
||||||
# The full version, including alpha/beta/rc tags.
|
# The full version, including alpha/beta/rc tags.
|
||||||
|
|
||||||
# The language for content autogenerated by Sphinx. Refer to documentation
|
# The language for content autogenerated by Sphinx. Refer to documentation
|
||||||
|
|
1456
docs/source/gridparms.rst
Normal file
1456
docs/source/gridparms.rst
Normal file
File diff suppressed because it is too large
Load diff
|
@ -17,3 +17,4 @@ Documentation
|
||||||
examples/index
|
examples/index
|
||||||
about
|
about
|
||||||
dev
|
dev
|
||||||
|
gridparms
|
||||||
|
|
|
@ -1,3 +1,5 @@
|
||||||
|
.. _Jupyter Notebook: http://nbviewer.jupyter.org/github/Unidata/python-awips/tree/master/examples/notebooks
|
||||||
|
|
||||||
Install python-awips
|
Install python-awips
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
@ -8,22 +10,24 @@ Requirements
|
||||||
|
|
||||||
- Python 2.7 or later
|
- Python 2.7 or later
|
||||||
- pip install numpy shapely
|
- pip install numpy shapely
|
||||||
|
- pip install metpy enum34 - to run `Jupyter Notebook`_ examples
|
||||||
|
|
||||||
From Github
|
Install from Github
|
||||||
~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
- git clone https://github.com/Unidata/python-awips.git
|
- git clone https://github.com/Unidata/python-awips.git
|
||||||
- cd python-awips
|
- cd python-awips
|
||||||
- python setup.py install
|
- python setup.py install
|
||||||
|
|
||||||
|
|
||||||
Install for AWIPS II Python
|
Install for AWIPS (/awips2/python)
|
||||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
AWIPS II >=15.1.3 (March 2016) has `python-awips` installed in /awips2/python, as well as a full meteorological data stack (metpy, matplotlib, numpy, etc).
|
AWIPS II >=15.1.3 (March 2016) has `python-awips` bundled with the awips2-server and awips2-cave groups, as well as a full meteorological data stack (metpy, matplotlib, numpy, etc).
|
||||||
|
|
||||||
For AWIPS II systems 15.1.2 and lower:
|
Easy install on an AWIPS system
|
||||||
|
|
||||||
- wget https://bootstrap.pypa.io/ez_setup.py -O - | /awips2/python/bin/python
|
- wget https://bootstrap.pypa.io/ez_setup.py -O - | /awips2/python/bin/python
|
||||||
- /awips2/python/bin/easy_install pip
|
- /awips2/python/bin/easy_install pip
|
||||||
- /awips2/python/bin/pip install python-awips
|
- /awips2/python/bin/pip install python-awips
|
||||||
|
|
||||||
|
|
46
dynamicserialize/adapters/FormattedDateAdapter.py
Normal file
46
dynamicserialize/adapters/FormattedDateAdapter.py
Normal file
|
@ -0,0 +1,46 @@
|
||||||
|
##
|
||||||
|
# This software was developed and / or modified by Raytheon Company,
|
||||||
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
#
|
||||||
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
# This software product contains export-restricted data whose
|
||||||
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
# to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
# an export license or other authorization.
|
||||||
|
#
|
||||||
|
# Contractor Name: Raytheon Company
|
||||||
|
# Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
# Mail Stop B8
|
||||||
|
# Omaha, NE 68106
|
||||||
|
# 402.291.0100
|
||||||
|
#
|
||||||
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
# further licensing information.
|
||||||
|
##
|
||||||
|
|
||||||
|
|
||||||
|
#
|
||||||
|
# Adapter for FormattedDate
|
||||||
|
#
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# 9/21/2015 4486 rjpeter Initial creation.
|
||||||
|
#
|
||||||
|
#
|
||||||
|
#
|
||||||
|
|
||||||
|
from dynamicserialize.dstypes.com.raytheon.uf.common.time import FormattedDate
|
||||||
|
|
||||||
|
|
||||||
|
ClassAdapter = 'com.raytheon.uf.common.time.FormattedDate'
|
||||||
|
|
||||||
|
def serialize(context, date):
|
||||||
|
context.writeI64(date.getTime())
|
||||||
|
|
||||||
|
def deserialize(context):
|
||||||
|
result = FormattedDate()
|
||||||
|
result.setTime(context.readI64())
|
||||||
|
return result
|
|
@ -32,7 +32,7 @@
|
||||||
# 04/22/13 #1949 rjpeter Added LockTableAdapter
|
# 04/22/13 #1949 rjpeter Added LockTableAdapter
|
||||||
# 02/06/14 #2672 bsteffen Added JTSEnvelopeAdapter
|
# 02/06/14 #2672 bsteffen Added JTSEnvelopeAdapter
|
||||||
# 06/22/2015 #4573 randerso Added JobProgressAdapter
|
# 06/22/2015 #4573 randerso Added JobProgressAdapter
|
||||||
#
|
# 09/21/2015 #4486 rjpeter Added FormattedDateAdapter
|
||||||
#
|
#
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
|
@ -43,6 +43,7 @@ __all__ = [
|
||||||
'GregorianCalendarAdapter',
|
'GregorianCalendarAdapter',
|
||||||
'ActiveTableModeAdapter',
|
'ActiveTableModeAdapter',
|
||||||
'DateAdapter',
|
'DateAdapter',
|
||||||
|
'FormattedDateAdapter',
|
||||||
'LocalizationLevelSerializationAdapter',
|
'LocalizationLevelSerializationAdapter',
|
||||||
'LocalizationTypeSerializationAdapter',
|
'LocalizationTypeSerializationAdapter',
|
||||||
'GeometryTypeAdapter',
|
'GeometryTypeAdapter',
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
# Date Ticket# Engineer Description
|
# Date Ticket# Engineer Description
|
||||||
# ------------ ---------- ----------- --------------------------
|
# ------------ ---------- ----------- --------------------------
|
||||||
# 05/22/2015 4522 randerso Initial creation
|
# 05/22/2015 4522 randerso Initial creation
|
||||||
|
# 03/17/2016 5426 randerso Add issueYear to primary key
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
class ActiveTableKey(object):
|
class ActiveTableKey(object):
|
||||||
|
@ -33,6 +34,7 @@ class ActiveTableKey(object):
|
||||||
self.sig = None
|
self.sig = None
|
||||||
self.etn = None
|
self.etn = None
|
||||||
self.ugcZone = None
|
self.ugcZone = None
|
||||||
|
self.issueYear = None
|
||||||
|
|
||||||
def getOfficeid(self):
|
def getOfficeid(self):
|
||||||
return self.officeid
|
return self.officeid
|
||||||
|
@ -63,3 +65,9 @@ class ActiveTableKey(object):
|
||||||
|
|
||||||
def setUgcZone(self, ugcZone):
|
def setUgcZone(self, ugcZone):
|
||||||
self.ugcZone = ugcZone
|
self.ugcZone = ugcZone
|
||||||
|
|
||||||
|
def getIssueYear(self):
|
||||||
|
return self.issueYear
|
||||||
|
|
||||||
|
def setIssueYear(self, issueYear):
|
||||||
|
self.issueYear = issueYear
|
||||||
|
|
|
@ -23,6 +23,7 @@
|
||||||
# Date Ticket# Engineer Description
|
# Date Ticket# Engineer Description
|
||||||
# ------------ ---------- ----------- --------------------------
|
# ------------ ---------- ----------- --------------------------
|
||||||
# 05/22/2015 4522 randerso Initial creation (hand generated)
|
# 05/22/2015 4522 randerso Initial creation (hand generated)
|
||||||
|
# 03/17/2016 5426 randerso Add issueYear to primary key
|
||||||
#
|
#
|
||||||
##
|
##
|
||||||
|
|
||||||
|
@ -159,6 +160,9 @@ class ActiveTableRecord(with_metaclass(abc.ABCMeta, object)):
|
||||||
return self.issueTime
|
return self.issueTime
|
||||||
|
|
||||||
def setIssueTime(self, issueTime):
|
def setIssueTime(self, issueTime):
|
||||||
|
from datetime import datetime
|
||||||
|
date = datetime.utcfromtimestamp(issueTime.getTime()/1000)
|
||||||
|
self.key.setIssueYear(date.year)
|
||||||
self.issueTime = issueTime
|
self.issueTime = issueTime
|
||||||
|
|
||||||
def getPurgeTime(self):
|
def getPurgeTime(self):
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
##
|
##
|
||||||
|
|
||||||
# File auto-generated against equivalent DynamicSerialize Java class
|
# File auto-generated against equivalent DynamicSerialize Java class
|
||||||
|
# Jul 27, 2015 4654 skorolev Added filters
|
||||||
|
|
||||||
class AlertVizRequest(object):
|
class AlertVizRequest(object):
|
||||||
|
|
||||||
|
@ -29,6 +30,7 @@ class AlertVizRequest(object):
|
||||||
self.sourceKey = None
|
self.sourceKey = None
|
||||||
self.category = None
|
self.category = None
|
||||||
self.audioFile = None
|
self.audioFile = None
|
||||||
|
self.filters = None
|
||||||
|
|
||||||
def getMessage(self):
|
def getMessage(self):
|
||||||
return self.message
|
return self.message
|
||||||
|
@ -66,3 +68,13 @@ class AlertVizRequest(object):
|
||||||
def setAudioFile(self, audioFile):
|
def setAudioFile(self, audioFile):
|
||||||
self.audioFile = audioFile
|
self.audioFile = audioFile
|
||||||
|
|
||||||
|
def getFilters(self):
|
||||||
|
return self.filters
|
||||||
|
|
||||||
|
def setFilters(self, filters):
|
||||||
|
if filters is None:
|
||||||
|
self.filters = {}
|
||||||
|
elif not(filters.has_key(None) or filters.values().count(None)>0 or filters.has_key('') or filters.values().count('')>0):
|
||||||
|
self.filters = filters
|
||||||
|
else:
|
||||||
|
raise ValueError('Filters must not contain None or empty keys or values: %s' % filters)
|
||||||
|
|
|
@ -18,23 +18,27 @@
|
||||||
# further licensing information.
|
# further licensing information.
|
||||||
##
|
##
|
||||||
|
|
||||||
# File auto-generated against equivalent DynamicSerialize Java class
|
##
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# xx/xx/?? dgilling Initial Creation.
|
||||||
|
# 12/02/15 5129 dgilling Refactor based on AbstractGfeRequest.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
class GetSiteTimeZoneInfoRequest(object):
|
from dynamicserialize.dstypes.com.raytheon.uf.common.dataplugin.gfe.request import AbstractGfeRequest
|
||||||
|
|
||||||
|
class GetSiteTimeZoneInfoRequest(AbstractGfeRequest):
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
self.workstationID = None
|
super(GetSiteTimeZoneInfoRequest, self).__init__()
|
||||||
self.siteID = None
|
self.requestedSiteIDs = None
|
||||||
|
|
||||||
def getWorkstationID(self):
|
def getRequestedSiteIDs(self):
|
||||||
return self.workstationID
|
return self.requestedSiteIDs
|
||||||
|
|
||||||
def setWorkstationID(self, workstationID):
|
def setRequestedSiteIDs(self, requestedSiteIDs):
|
||||||
self.workstationID = workstationID
|
self.requestedSiteIDs = requestedSiteIDs
|
||||||
|
|
||||||
def getSiteID(self):
|
|
||||||
return self.siteID
|
|
||||||
|
|
||||||
def setSiteID(self, siteID):
|
|
||||||
self.siteID = siteID
|
|
||||||
|
|
||||||
|
|
|
@ -22,7 +22,7 @@
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'dbsrv',
|
'dbsrv',
|
||||||
'request'
|
'subscription'
|
||||||
]
|
]
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
##
|
||||||
|
# This software was developed and / or modified by Raytheon Company,
|
||||||
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
#
|
||||||
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
# This software product contains export-restricted data whose
|
||||||
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
# to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
# an export license or other authorization.
|
||||||
|
#
|
||||||
|
# Contractor Name: Raytheon Company
|
||||||
|
# Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
# Mail Stop B8
|
||||||
|
# Omaha, NE 68106
|
||||||
|
# 402.291.0100
|
||||||
|
#
|
||||||
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
# further licensing information.
|
||||||
|
##
|
||||||
|
|
||||||
|
# File auto-generated by PythonFileGenerator
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'request'
|
||||||
|
]
|
||||||
|
|
||||||
|
|
|
@ -30,11 +30,13 @@
|
||||||
import struct
|
import struct
|
||||||
import socket
|
import socket
|
||||||
import os
|
import os
|
||||||
import pwd
|
import thread
|
||||||
|
|
||||||
try:
|
try:
|
||||||
import _thread
|
import pwd
|
||||||
|
pwd_error = False
|
||||||
except ImportError:
|
except ImportError:
|
||||||
import thread as _thread
|
pwd_error = True
|
||||||
|
|
||||||
class WsId(object):
|
class WsId(object):
|
||||||
|
|
||||||
|
@ -45,7 +47,10 @@ class WsId(object):
|
||||||
|
|
||||||
self.userName = userName
|
self.userName = userName
|
||||||
if userName is None:
|
if userName is None:
|
||||||
self.userName = pwd.getpwuid(os.getuid()).pw_name
|
if not pwd_error:
|
||||||
|
self.userName = pwd.getpwuid(os.getuid()).pw_name
|
||||||
|
else:
|
||||||
|
self.userName = "GenericUsername"
|
||||||
|
|
||||||
self.progName = progName
|
self.progName = progName
|
||||||
if progName is None:
|
if progName is None:
|
||||||
|
@ -96,4 +101,4 @@ class WsId(object):
|
||||||
return self.toString()
|
return self.toString()
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
return self.toString()
|
return self.toString()
|
||||||
|
|
|
@ -20,13 +20,22 @@
|
||||||
|
|
||||||
# File auto-generated against equivalent DynamicSerialize Java class
|
# File auto-generated against equivalent DynamicSerialize Java class
|
||||||
|
|
||||||
import os, pwd
|
import os
|
||||||
|
|
||||||
|
try:
|
||||||
|
import pwd
|
||||||
|
pwd_error = False
|
||||||
|
except ImportError:
|
||||||
|
pwd_error = True
|
||||||
|
|
||||||
class UserId(object):
|
class UserId(object):
|
||||||
|
|
||||||
def __init__(self, id = None):
|
def __init__(self, id = None):
|
||||||
if id is None:
|
if id is None:
|
||||||
self.id = pwd.getpwuid(os.getuid()).pw_name
|
if not pwd_error:
|
||||||
|
self.id = pwd.getpwuid(os.getuid()).pw_name
|
||||||
|
else:
|
||||||
|
self.id = "GenericUsername"
|
||||||
else:
|
else:
|
||||||
self.id = id
|
self.id = id
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
##
|
||||||
|
# This software was developed and / or modified by Raytheon Company,
|
||||||
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
#
|
||||||
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
# This software product contains export-restricted data whose
|
||||||
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
# to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
# an export license or other authorization.
|
||||||
|
#
|
||||||
|
# Contractor Name: Raytheon Company
|
||||||
|
# Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
# Mail Stop B8
|
||||||
|
# Omaha, NE 68106
|
||||||
|
# 402.291.0100
|
||||||
|
#
|
||||||
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
# further licensing information.
|
||||||
|
##
|
||||||
|
|
||||||
|
# File auto-generated against equivalent DynamicSerialize Java class
|
||||||
|
|
||||||
|
class DeleteOrphansRequest(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.filename = None
|
||||||
|
self.oldestDate = None
|
||||||
|
|
||||||
|
def getOldestDate(self):
|
||||||
|
return self.oldestDate
|
||||||
|
|
||||||
|
def setOldestDate(self, oldestDate):
|
||||||
|
self.oldestDate = oldestDate
|
||||||
|
|
||||||
|
def getFilename(self):
|
||||||
|
return self.filename
|
||||||
|
|
||||||
|
def setFilename(self, filename):
|
||||||
|
self.filename = filename
|
|
@ -26,6 +26,7 @@ __all__ = [
|
||||||
'DatasetDataRequest',
|
'DatasetDataRequest',
|
||||||
'DatasetNamesRequest',
|
'DatasetNamesRequest',
|
||||||
'DeleteFilesRequest',
|
'DeleteFilesRequest',
|
||||||
|
'DeleteOrphansRequest',
|
||||||
'DeleteRequest',
|
'DeleteRequest',
|
||||||
'GroupsRequest',
|
'GroupsRequest',
|
||||||
'RepackRequest',
|
'RepackRequest',
|
||||||
|
@ -38,6 +39,7 @@ from .CreateDatasetRequest import CreateDatasetRequest
|
||||||
from .DatasetDataRequest import DatasetDataRequest
|
from .DatasetDataRequest import DatasetDataRequest
|
||||||
from .DatasetNamesRequest import DatasetNamesRequest
|
from .DatasetNamesRequest import DatasetNamesRequest
|
||||||
from .DeleteFilesRequest import DeleteFilesRequest
|
from .DeleteFilesRequest import DeleteFilesRequest
|
||||||
|
from .DeleteOrphansRequest import DeleteOrphansRequest
|
||||||
from .DeleteRequest import DeleteRequest
|
from .DeleteRequest import DeleteRequest
|
||||||
from .GroupsRequest import GroupsRequest
|
from .GroupsRequest import GroupsRequest
|
||||||
from .RepackRequest import RepackRequest
|
from .RepackRequest import RepackRequest
|
||||||
|
|
|
@ -0,0 +1,39 @@
|
||||||
|
##
|
||||||
|
# This software was developed and / or modified by Raytheon Company,
|
||||||
|
# pursuant to Contract DG133W-05-CQ-1067 with the US Government.
|
||||||
|
#
|
||||||
|
# U.S. EXPORT CONTROLLED TECHNICAL DATA
|
||||||
|
# This software product contains export-restricted data whose
|
||||||
|
# export/transfer/disclosure is restricted by U.S. law. Dissemination
|
||||||
|
# to non-U.S. persons whether in the United States or abroad requires
|
||||||
|
# an export license or other authorization.
|
||||||
|
#
|
||||||
|
# Contractor Name: Raytheon Company
|
||||||
|
# Contractor Address: 6825 Pine Street, Suite 340
|
||||||
|
# Mail Stop B8
|
||||||
|
# Omaha, NE 68106
|
||||||
|
# 402.291.0100
|
||||||
|
#
|
||||||
|
# See the AWIPS II Master Rights File ("Master Rights File.pdf") for
|
||||||
|
# further licensing information.
|
||||||
|
##
|
||||||
|
# ----------------------------------------------------------------------------
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# 09/21/2015 4486 rjpeter Initial creation.
|
||||||
|
#
|
||||||
|
##
|
||||||
|
|
||||||
|
from time import gmtime, strftime
|
||||||
|
from dynamicserialize.dstypes.java.util import Date
|
||||||
|
|
||||||
|
class FormattedDate(Date):
|
||||||
|
|
||||||
|
def __init__(self, timeInMillis=None):
|
||||||
|
super(FormattedDate, self).__init__(timeInMillis)
|
||||||
|
|
||||||
|
def __repr__(self):
|
||||||
|
return strftime("%Y-%m-%d %H:%M:%S.", gmtime(self.time/1000.0)) + '{:03d}'.format(self.time%1000)
|
|
@ -22,9 +22,11 @@
|
||||||
|
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'DataTime',
|
'DataTime',
|
||||||
'TimeRange'
|
'TimeRange',
|
||||||
|
'FormattedDate'
|
||||||
]
|
]
|
||||||
|
|
||||||
from .DataTime import DataTime
|
from .DataTime import DataTime
|
||||||
from .TimeRange import TimeRange
|
from .TimeRange import TimeRange
|
||||||
|
from .FormattedDate import FormattedDate
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,8 @@ __all__ = [
|
||||||
'ActivityInfo',
|
'ActivityInfo',
|
||||||
'DerivedProduct',
|
'DerivedProduct',
|
||||||
'ResponseMessageValidate',
|
'ResponseMessageValidate',
|
||||||
'request'
|
'request',
|
||||||
|
'response'
|
||||||
]
|
]
|
||||||
|
|
||||||
from .ActivityInfo import ActivityInfo
|
from .ActivityInfo import ActivityInfo
|
||||||
|
|
|
@ -0,0 +1,13 @@
|
||||||
|
|
||||||
|
# File auto-generated against equivalent DynamicSerialize Java class
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# May 05, 2016 root Generated
|
||||||
|
|
||||||
|
class RetrieveActivityMapRequest(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
return
|
|
@ -4,10 +4,11 @@
|
||||||
__all__ = [
|
__all__ = [
|
||||||
'RetrieveAllProductsRequest',
|
'RetrieveAllProductsRequest',
|
||||||
'StoreActivityRequest',
|
'StoreActivityRequest',
|
||||||
'StoreDerivedProductRequest'
|
'StoreDerivedProductRequest',
|
||||||
|
'RetrieveActivityMapRequest'
|
||||||
]
|
]
|
||||||
|
|
||||||
from .RetrieveAllProductsRequest import RetrieveAllProductsRequest
|
from .RetrieveAllProductsRequest import RetrieveAllProductsRequest
|
||||||
from .StoreActivityRequest import StoreActivityRequest
|
from .StoreActivityRequest import StoreActivityRequest
|
||||||
from .StoreDerivedProductRequest import StoreDerivedProductRequest
|
from .StoreDerivedProductRequest import StoreDerivedProductRequest
|
||||||
|
from .RetrieveActivityMapRequest import RetrieveActivityMapRequest
|
||||||
|
|
|
@ -0,0 +1,55 @@
|
||||||
|
|
||||||
|
# File auto-generated against equivalent DynamicSerialize Java class
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# May 06, 2016 root Generated
|
||||||
|
|
||||||
|
class ActivityMapData(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.refTime = None
|
||||||
|
self.activityLabel = None
|
||||||
|
self.activitySubtype = None
|
||||||
|
self.dataURI = None
|
||||||
|
self.activityType = None
|
||||||
|
self.activityName = None
|
||||||
|
|
||||||
|
def getRefTime(self):
|
||||||
|
return self.refTime
|
||||||
|
|
||||||
|
def setRefTime(self, refTime):
|
||||||
|
self.refTime = refTime
|
||||||
|
|
||||||
|
def getActivityLabel(self):
|
||||||
|
return self.activityLabel
|
||||||
|
|
||||||
|
def setActivityLabel(self, activityLabel):
|
||||||
|
self.activityLabel = activityLabel
|
||||||
|
|
||||||
|
def getActivitySubtype(self):
|
||||||
|
return self.activitySubtype
|
||||||
|
|
||||||
|
def setActivitySubtype(self, activitySubtype):
|
||||||
|
self.activitySubtype = activitySubtype
|
||||||
|
|
||||||
|
def getDataURI(self):
|
||||||
|
return self.dataURI
|
||||||
|
|
||||||
|
def setDataURI(self, dataURI):
|
||||||
|
self.dataURI = dataURI
|
||||||
|
|
||||||
|
def getActivityType(self):
|
||||||
|
return self.activityType
|
||||||
|
|
||||||
|
def setActivityType(self, activityType):
|
||||||
|
self.activityType = activityType
|
||||||
|
|
||||||
|
def getActivityName(self):
|
||||||
|
return self.activityName
|
||||||
|
|
||||||
|
def setActivityName(self, activityName):
|
||||||
|
self.activityName = activityName
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
|
||||||
|
# File auto-generated against equivalent DynamicSerialize Java class
|
||||||
|
#
|
||||||
|
# SOFTWARE HISTORY
|
||||||
|
#
|
||||||
|
# Date Ticket# Engineer Description
|
||||||
|
# ------------ ---------- ----------- --------------------------
|
||||||
|
# May 06, 2016 root Generated
|
||||||
|
|
||||||
|
class RetrieveActivityMapResponse(object):
|
||||||
|
|
||||||
|
def __init__(self):
|
||||||
|
self.data = None
|
||||||
|
|
||||||
|
def getData(self):
|
||||||
|
return self.data
|
||||||
|
|
||||||
|
def setData(self, data):
|
||||||
|
self.data = data
|
||||||
|
|
|
@ -0,0 +1,11 @@
|
||||||
|
|
||||||
|
# File auto-generated by PythonFileGenerator
|
||||||
|
|
||||||
|
__all__ = [
|
||||||
|
'ActivityMapData',
|
||||||
|
'RetrieveActivityMapResponse'
|
||||||
|
]
|
||||||
|
|
||||||
|
from ActivityMapData import ActivityMapData
|
||||||
|
from RetrieveActivityMapResponse import RetrieveActivityMapResponse
|
||||||
|
|
|
@ -953,7 +953,7 @@
|
||||||
"name": "python",
|
"name": "python",
|
||||||
"nbconvert_exporter": "python",
|
"nbconvert_exporter": "python",
|
||||||
"pygments_lexer": "ipython2",
|
"pygments_lexer": "ipython2",
|
||||||
"version": "2.7.9"
|
"version": "2.7.10"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"nbformat": 4,
|
"nbformat": 4,
|
||||||
|
|
495
examples/notebooks/Model_Sounding_Data.ipynb
Normal file
495
examples/notebooks/Model_Sounding_Data.ipynb
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
6
setup.py
6
setup.py
|
@ -3,12 +3,12 @@ from setuptools import find_packages
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='python-awips',
|
name='python-awips',
|
||||||
version='0.9.3',
|
version='0.9.5',
|
||||||
description='A framework for requesting AWIPS meteorological datasets from an EDEX server',
|
description='A framework for requesting AWIPS meteorological datasets from an EDEX server',
|
||||||
packages=find_packages(exclude='data'),
|
packages=find_packages(exclude='data'),
|
||||||
license='Apache 2.0 / Various + US Export Controlled Technical Data',
|
license='Open Source',
|
||||||
url='http://www.unidata.ucar.edu/software/awips2',
|
url='http://www.unidata.ucar.edu/software/awips2',
|
||||||
download_url='https://github.com/Unidata/python-awips/tarball/0.9.3',
|
download_url='https://github.com/Unidata/python-awips/tarball/0.9.5',
|
||||||
author='Unidata',
|
author='Unidata',
|
||||||
author_email='mjames@ucar.edu',
|
author_email='mjames@ucar.edu',
|
||||||
requires=['argparse','shapely','numpy','six']
|
requires=['argparse','shapely','numpy','six']
|
||||||
|
|
Loading…
Add table
Reference in a new issue