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
|
||||
=========================================
|
||||
|
||||
.. 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/
|
||||
: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/
|
||||
: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/
|
||||
:alt: Latest Doc Build Status
|
||||
|
||||
|
@ -19,59 +21,33 @@ Install
|
|||
- pip install python-awips
|
||||
|
||||
Requirements
|
||||
------------
|
||||
|
||||
- Python 2.7 minimum
|
||||
- pip install numpy shapely
|
||||
- pip install metpy enum34 - to run Jupyter Notebook examples
|
||||
|
||||
Documentation
|
||||
-------------
|
||||
|
||||
- Python 2.7 or later
|
||||
- pip install numpy shapely
|
||||
* http://python-awips.readthedocs.org/en/latest/
|
||||
* 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
|
||||
- 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
|
||||
- /awips2/python/bin/easy_install pip
|
||||
- /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
|
||||
|
||||
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
|
||||
storage is the Environmental Data EXchange (**EDEX**) server; 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
|
||||
installations, on top of base Python 2.7.9.
|
||||
installations.
|
||||
|
||||
|
||||
====================== ============== ==============================
|
||||
Package Version RPM Name
|
||||
====================== ============== ==============================
|
||||
Python 2.7.9 awips2-python
|
||||
**awips** **0.9.3** **awips2-python-awips**
|
||||
Python 2.7.10 awips2-python
|
||||
**awips** **0.9.5** **awips2-python-awips**
|
||||
basemap 1.0.7 awips2-python-basemap
|
||||
cartopy 0.13.0 awips2-python-cartopy
|
||||
cherrypy 3.1.2 awips2-python-cherrypy
|
||||
cycler 0.10.0 awips2-python-cycler
|
||||
cython 0.23.4 awips2-python-cython
|
||||
dateutil 2.5.0 awips2-python-dateutil
|
||||
gfe 1.0.0 awips2-python-gfe
|
||||
h5py 1.3.0 awips2-python-h5py
|
||||
jep 3.4.1 awips2-python-jep
|
||||
matplotlib 1.5.1 awips2-python-matplotlib
|
||||
metpy 0.3.0 awips2-python-metpy
|
||||
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
|
||||
pint 0.7.2 awips2-python-pint
|
||||
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
|
||||
qpid 0.32 awips2-python-qpid
|
||||
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
|
||||
six 1.10.0 awips2-python-six
|
||||
tables 2.1.2 awips2-python-tables
|
||||
|
|
|
@ -65,7 +65,7 @@ author = 'Unidata'
|
|||
# built documents.
|
||||
#
|
||||
# The short X.Y version.
|
||||
version = '0.9.3'
|
||||
version = '0.9.5'
|
||||
# The full version, including alpha/beta/rc tags.
|
||||
|
||||
# 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
|
||||
about
|
||||
dev
|
||||
gridparms
|
||||
|
|
|
@ -1,3 +1,5 @@
|
|||
.. _Jupyter Notebook: http://nbviewer.jupyter.org/github/Unidata/python-awips/tree/master/examples/notebooks
|
||||
|
||||
Install python-awips
|
||||
------------------
|
||||
|
||||
|
@ -8,22 +10,24 @@ Requirements
|
|||
|
||||
- Python 2.7 or later
|
||||
- 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
|
||||
- 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
|
||||
- /awips2/python/bin/easy_install pip
|
||||
- /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
|
||||
# 02/06/14 #2672 bsteffen Added JTSEnvelopeAdapter
|
||||
# 06/22/2015 #4573 randerso Added JobProgressAdapter
|
||||
#
|
||||
# 09/21/2015 #4486 rjpeter Added FormattedDateAdapter
|
||||
#
|
||||
|
||||
__all__ = [
|
||||
|
@ -43,6 +43,7 @@ __all__ = [
|
|||
'GregorianCalendarAdapter',
|
||||
'ActiveTableModeAdapter',
|
||||
'DateAdapter',
|
||||
'FormattedDateAdapter',
|
||||
'LocalizationLevelSerializationAdapter',
|
||||
'LocalizationTypeSerializationAdapter',
|
||||
'GeometryTypeAdapter',
|
||||
|
|
|
@ -23,6 +23,7 @@
|
|||
# Date Ticket# Engineer Description
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 05/22/2015 4522 randerso Initial creation
|
||||
# 03/17/2016 5426 randerso Add issueYear to primary key
|
||||
#
|
||||
##
|
||||
class ActiveTableKey(object):
|
||||
|
@ -33,6 +34,7 @@ class ActiveTableKey(object):
|
|||
self.sig = None
|
||||
self.etn = None
|
||||
self.ugcZone = None
|
||||
self.issueYear = None
|
||||
|
||||
def getOfficeid(self):
|
||||
return self.officeid
|
||||
|
@ -63,3 +65,9 @@ class ActiveTableKey(object):
|
|||
|
||||
def setUgcZone(self, 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
|
||||
# ------------ ---------- ----------- --------------------------
|
||||
# 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
|
||||
|
||||
def setIssueTime(self, issueTime):
|
||||
from datetime import datetime
|
||||
date = datetime.utcfromtimestamp(issueTime.getTime()/1000)
|
||||
self.key.setIssueYear(date.year)
|
||||
self.issueTime = issueTime
|
||||
|
||||
def getPurgeTime(self):
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
##
|
||||
|
||||
# File auto-generated against equivalent DynamicSerialize Java class
|
||||
# Jul 27, 2015 4654 skorolev Added filters
|
||||
|
||||
class AlertVizRequest(object):
|
||||
|
||||
|
@ -29,6 +30,7 @@ class AlertVizRequest(object):
|
|||
self.sourceKey = None
|
||||
self.category = None
|
||||
self.audioFile = None
|
||||
self.filters = None
|
||||
|
||||
def getMessage(self):
|
||||
return self.message
|
||||
|
@ -66,3 +68,13 @@ class AlertVizRequest(object):
|
|||
def setAudioFile(self, 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.
|
||||
##
|
||||
|
||||
# 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):
|
||||
self.workstationID = None
|
||||
self.siteID = None
|
||||
super(GetSiteTimeZoneInfoRequest, self).__init__()
|
||||
self.requestedSiteIDs = None
|
||||
|
||||
def getWorkstationID(self):
|
||||
return self.workstationID
|
||||
def getRequestedSiteIDs(self):
|
||||
return self.requestedSiteIDs
|
||||
|
||||
def setWorkstationID(self, workstationID):
|
||||
self.workstationID = workstationID
|
||||
|
||||
def getSiteID(self):
|
||||
return self.siteID
|
||||
|
||||
def setSiteID(self, siteID):
|
||||
self.siteID = siteID
|
||||
def setRequestedSiteIDs(self, requestedSiteIDs):
|
||||
self.requestedSiteIDs = requestedSiteIDs
|
||||
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
|
||||
__all__ = [
|
||||
'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 socket
|
||||
import os
|
||||
import pwd
|
||||
import thread
|
||||
|
||||
try:
|
||||
import _thread
|
||||
import pwd
|
||||
pwd_error = False
|
||||
except ImportError:
|
||||
import thread as _thread
|
||||
pwd_error = True
|
||||
|
||||
class WsId(object):
|
||||
|
||||
|
@ -45,7 +47,10 @@ class WsId(object):
|
|||
|
||||
self.userName = userName
|
||||
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
|
||||
if progName is None:
|
||||
|
@ -96,4 +101,4 @@ class WsId(object):
|
|||
return self.toString()
|
||||
|
||||
def __repr__(self):
|
||||
return self.toString()
|
||||
return self.toString()
|
||||
|
|
|
@ -20,13 +20,22 @@
|
|||
|
||||
# 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):
|
||||
|
||||
def __init__(self, id = 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:
|
||||
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',
|
||||
'DatasetNamesRequest',
|
||||
'DeleteFilesRequest',
|
||||
'DeleteOrphansRequest',
|
||||
'DeleteRequest',
|
||||
'GroupsRequest',
|
||||
'RepackRequest',
|
||||
|
@ -38,6 +39,7 @@ from .CreateDatasetRequest import CreateDatasetRequest
|
|||
from .DatasetDataRequest import DatasetDataRequest
|
||||
from .DatasetNamesRequest import DatasetNamesRequest
|
||||
from .DeleteFilesRequest import DeleteFilesRequest
|
||||
from .DeleteOrphansRequest import DeleteOrphansRequest
|
||||
from .DeleteRequest import DeleteRequest
|
||||
from .GroupsRequest import GroupsRequest
|
||||
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__ = [
|
||||
'DataTime',
|
||||
'TimeRange'
|
||||
'TimeRange',
|
||||
'FormattedDate'
|
||||
]
|
||||
|
||||
from .DataTime import DataTime
|
||||
from .TimeRange import TimeRange
|
||||
from .FormattedDate import FormattedDate
|
||||
|
||||
|
|
|
@ -5,7 +5,8 @@ __all__ = [
|
|||
'ActivityInfo',
|
||||
'DerivedProduct',
|
||||
'ResponseMessageValidate',
|
||||
'request'
|
||||
'request',
|
||||
'response'
|
||||
]
|
||||
|
||||
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__ = [
|
||||
'RetrieveAllProductsRequest',
|
||||
'StoreActivityRequest',
|
||||
'StoreDerivedProductRequest'
|
||||
'StoreDerivedProductRequest',
|
||||
'RetrieveActivityMapRequest'
|
||||
]
|
||||
|
||||
from .RetrieveAllProductsRequest import RetrieveAllProductsRequest
|
||||
from .StoreActivityRequest import StoreActivityRequest
|
||||
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",
|
||||
"nbconvert_exporter": "python",
|
||||
"pygments_lexer": "ipython2",
|
||||
"version": "2.7.9"
|
||||
"version": "2.7.10"
|
||||
}
|
||||
},
|
||||
"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(
|
||||
name='python-awips',
|
||||
version='0.9.3',
|
||||
version='0.9.5',
|
||||
description='A framework for requesting AWIPS meteorological datasets from an EDEX server',
|
||||
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',
|
||||
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_email='mjames@ucar.edu',
|
||||
requires=['argparse','shapely','numpy','six']
|
||||
|
|
Loading…
Add table
Reference in a new issue