-
Notifications
You must be signed in to change notification settings - Fork 37
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #96 from rstoneback/template_instrument
Added template instruments, related to Issues #94
- Loading branch information
Showing
10 changed files
with
550 additions
and
13 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,177 @@ | ||
# -*- coding: utf-8 -*- | ||
"""This is a template for a pysat.Instrument support file that | ||
utilizes CDAWeb methods. Copy and modify this file as needed when adding a | ||
new Instrument to pysat. | ||
This is a good area to introduce the instrument, provide background | ||
on the mission, operations, instrumenation, and measurements. | ||
Also a good place to provide contact information. This text will | ||
be included in the pysat API documentation. | ||
Parameters | ||
---------- | ||
platform : string | ||
*List platform string here* | ||
name : string | ||
*List name string here* | ||
sat_id : string | ||
*List supported sat_ids here* | ||
tag : string | ||
*List supported tag strings here* | ||
Note | ||
---- | ||
:: | ||
Notes | ||
Warnings | ||
-------- | ||
Authors | ||
------- | ||
""" | ||
|
||
from __future__ import print_function | ||
from __future__ import absolute_import | ||
|
||
import pandas as pds | ||
import numpy as np | ||
import pysat | ||
import sys | ||
import functools | ||
|
||
# CDAWeb methods prewritten for pysat | ||
from . import nasa_cdaweb_methods as cdw | ||
|
||
# the platform and name strings associated with this instrument | ||
# need to be defined at the top level | ||
# these attributes will be copied over to the Instrument object by pysat | ||
# the strings used here should also be used to name this file | ||
# platform_name.py | ||
platform = '' | ||
name = '' | ||
|
||
# dictionary of data 'tags' and corresponding description | ||
tags = {'':'description 1', # this is the default | ||
'tag_string': 'description 2'} | ||
|
||
# Let pysat know if there are multiple satellite platforms supported | ||
# by these routines | ||
# define a dictionary keyed by satellite ID, each with a list of | ||
# corresponding tags | ||
# sat_ids = {'a':['L1', 'L0'], 'b':['L1', 'L2'], 'c':['L1', 'L3']} | ||
sat_ids = {'':['']} | ||
|
||
# Define good days to download data for when pysat undergoes testing. | ||
# format is outer dictionary has sat_id as the key | ||
# each sat_id has a dictionary of test dates keyed by tag string | ||
# test_dates = {'a':{'L0':pysat.datetime(2019,1,1), | ||
# 'L1':pysat.datetime(2019,1,2)}, | ||
# 'b':{'L1':pysat.datetime(2019,3,1), | ||
# 'L2':pysat.datetime(2019,11,23),}} | ||
test_dates = {'':{'':pysat.datetime(2019,1,1)}} | ||
|
||
# Additional information needs to be defined | ||
# to support the CDAWeb list files routine | ||
# We need to define a filename format string for every | ||
# supported combination of sat_id and tag string | ||
# fname1 = 'cnofs_vefi_bfield_1sec_{year:04d}{month:02d}{day:02d}_v05.cdf' | ||
# fname2 = 'cnofs_vefi_acfield_1sec_{year:04d}{month:02d}{day:02d}_v05.cdf' | ||
# supported_tags = {'sat1':{'tag1':fname1}, | ||
# 'sat2':{'tag2':fname2}} | ||
# you can use format keywords year, month, day, hour, min, sec, | ||
# version and revision | ||
# see code docstring for latest | ||
fname = 'cnofs_vefi_bfield_1sec_{year:04d}{month:02d}{day:02d}_v05.cdf' | ||
supported_tags = {'':{'':fname}} | ||
# use the CDAWeb methods list files routine | ||
# the command below presets some of the methods inputs, leaving | ||
# those provided by pysat available when invoked | ||
list_files = functools.partial(cdw.list_files, | ||
supported_tags=supported_tags) | ||
|
||
# | ||
# support load routine | ||
# | ||
# use the default CDAWeb method | ||
# no other information needs to be supplied here | ||
# pysatCDF is used to load data | ||
load = cdw.load | ||
|
||
# | ||
# support download routine | ||
# | ||
# to use the default CDAWeb method | ||
# we need to provide additional information | ||
# directory location on CDAWeb ftp server | ||
# formatting template for filenames on CDAWeb | ||
# formatting template for files saved to the local disk | ||
# a dictionary needs to be created for each sat_id and tag | ||
# combination along with the file format template | ||
# outer dict keyed by sat_id, inner dict keyed by tag | ||
basic_tag = {'dir':'/pub/data/cnofs/vefi/bfield_1sec', | ||
'remote_fname':'{year:4d}/'+fname, | ||
'local_fname':fname} | ||
supported_tags = {'':{'':basic_tag}} | ||
download = functools.partial(cdw.download, supported_tags) | ||
|
||
# code should be defined below as needed | ||
def default(self): | ||
"""Default customization function. | ||
This routine is automatically applied to the Instrument object | ||
on every load by the pysat nanokernel (first in queue). | ||
Parameters | ||
---------- | ||
self : pysat.Instrument | ||
This object | ||
Returns | ||
-------- | ||
Void : (NoneType) | ||
Object modified in place. | ||
""" | ||
|
||
return | ||
|
||
# code should be defined below as needed | ||
def clean(inst): | ||
"""Routine to return PLATFORM/NAME data cleaned to the specified level | ||
Cleaning level is specified in inst.clean_level and pysat | ||
will accept user input for several strings. The clean_level is | ||
specified at instantiation of the Instrument object. | ||
'clean' All parameters should be good, suitable for statistical and | ||
case studies | ||
'dusty' All paramers should generally be good though same may | ||
not be great | ||
'dirty' There are data areas that have issues, data should be used | ||
with caution | ||
'none' No cleaning applied, routine not called in this case. | ||
Parameters | ||
----------- | ||
inst : (pysat.Instrument) | ||
Instrument class object, whose attribute clean_level is used to return | ||
the desired level of data selectivity. | ||
Returns | ||
-------- | ||
Void : (NoneType) | ||
data in inst is modified in-place. | ||
Notes | ||
----- | ||
""" | ||
|
||
return |
Oops, something went wrong.