Skip to content
Snippets Groups Projects
Commit 3a2219eb authored by Tyler Thatcher's avatar Tyler Thatcher Committed by GitHub
Browse files

Merge pull request #105 from jlaura/master

Fixes #104
parents 52c5322b a2a38107
No related branches found
Tags 1.2.0
No related merge requests found
PDS_VERSION_ID = "PDS3"
/*** FILE FORMAT ***/
RECORD_TYPE = "UNDEFINED"
FILE_NAME = "SP_2C_03_04184_N187_E0053.spc"
/*** POINTERS TO START BYTE OFFSET OF OBJECTS IN FILE ***/
^ANCILLARY_AND_SUPPLEMENT_DATA = ("SP_2C_03_04184_N187_E0053.spc", 1 <BYTES>)
^SP_SPECTRUM_WAV = ("SP_2C_03_04184_N187_E0053.spc", 6309 <BYTES>)
^SP_SPECTRUM_RAW = ("SP_2C_03_04184_N187_E0053.spc", 6901 <BYTES>)
^SP_SPECTRUM_REF2 = ("SP_2C_03_04184_N187_E0053.spc", 29397 <BYTES>)
^SP_SPECTRUM_RAD = ("SP_2C_03_04184_N187_E0053.spc", 51893 <BYTES>)
^SP_SPECTRUM_REF1 = ("SP_2C_03_04184_N187_E0053.spc", 74389 <BYTES>)
^SP_SPECTRUM_QA = ("SP_2C_03_04184_N187_E0053.spc", 96885 <BYTES>)
^L2D_RESULT_ARRAY = ("SP_2C_03_04184_N187_E0053.spc", 119381 <BYTES>)
/*** BASIC INFORMATION ***/
MISSION_NAME = "SELENE"
DATA_SET_ID = "SLN-L-SP-4-LEVEL2C-V3.0"
DATA_SET_NAME = "SELENE MOON SP 4 LEVEL2C V3.0"
L2DB_ORIGINAL_ID = "SP_Level2C"
PRODUCT_ID = "SP_2C_03_04184_N187_E0053"
INSTRUMENT_TYPE = "REFLECTANCE SPECTROMETER"
INSTRUMENT_ID = "SP"
INSTRUMENT_NAME = "SPECTRAL PROFILER"
INSTRUMENT_HOST_NAME = "SELENE MAIN ORBITER"
TARGET_TYPE = "SATELLITE"
TARGET_NAME = "MOON"
START_TIME = 2008-09-16T04:37:49.995417
STOP_TIME = 2008-09-16T04:38:03.463336
/*** GENERAL DATA DESCRIPTION PARAMETERS ***/
SOFTWARE_NAME = "RGC_SP_plus"
SOFTWARE_VERSION = "1.0"
PROCESS_VERSION_ID = "L2C"
PRODUCT_CREATION_TIME = 2016-03-28T20:32:18
PROGRAM_START_TIME = 2016-03-28T15:50:11
PRODUCER_ID = "LISM"
PRODUCT_SET_ID = "SP_Level2C"
PRODUCT_VERSION_ID = "03"
REGISTERED_PRODUCT = "Y"
LEVEL2B1_FILE_NAME = "SP_2B1_02_04184_1AN0E00557N.spc"
SOURCE_FILE_NAME = "SP_2B2_02_04184_N187_E0053.spc"
SPICE_METAKERNEL_FILE_NAME = "RGC_INF_TCv401IK_MIv200IK_SPv105IK_RISE100i_05_LongCK_D_V02_de421_110706.mk"
/*** SCENE RELATED PARAMETERS ***/
MISSION_PHASE_NAME = "Nominal"
REVOLUTION_NUMBER = 4184
STRIP_SEQUENCE_NUMBER = 3
SCENE_SEQUENCE_NUMBER = 111
REV_STRIP_SCENE = "N/A"
OBSERVATION_MODE_ID = "OBS-NORMAL"
SENSOR_DESCRIPTION = "SP is a nadir-looking spectrometer which has a reflective telescope, two plane gratings, and three 128-element detectors covering 296 bands in 500 - 2600 nm. The first detector is Si PIN photodiode, and the rest are InGaAs."
SENSOR_DESCRIPTION2 = "CENTER_LATITUDE and CENTER_LONGITUDE of footprints were re-calculated in this version (ver.3)."
EXPOSURE_MODE_ID = "SHORT"
SHORT_EXPOSURE_DURATION = 26.000 <ms>
LONG_EXPOSURE_DURATION = 77.000 <ms>
CALIBRATION_MODE_ID = "NONE"
SPACECRAFT_CLOCK_START_COUNT = "905575060.5417 <s>"
SPACECRAFT_CLOCK_STOP_COUNT = "905575074.0097 <s>"
UPPER_LEFT_LATITUDE = 18.364346 <deg>
UPPER_LEFT_LONGITUDE = 5.289752 <deg>
UPPER_RIGHT_LATITUDE = 18.364346 <deg>
UPPER_RIGHT_LONGITUDE = 5.289752 <deg>
LOWER_LEFT_LATITUDE = 19.035673 <deg>
LOWER_LEFT_LONGITUDE = 5.280144 <deg>
LOWER_RIGHT_LATITUDE = 19.035673 <deg>
LOWER_RIGHT_LONGITUDE = 5.280144 <deg>
LOCATION_FLAG = "A"
ROLL_CANT = "NO"
MOON_SUN_DISTANCE = 150756262 <km>
VIS_FOCAL_PLANE_TEMPERATURE = 21.06 <degC>
N1_FOCAL_PLANE_TEMPERATURE = 18.42 <degC>
N2_FOCAL_PLANE_TEMPERATURE = 243.00 <K>
SATELLITE_MOVING_DIRECTION = +1
A_AXIS_RADIUS = 1737.400 <km>
B_AXIS_RADIUS = 1737.400 <km>
C_AXIS_RADIUS = 1737.400 <km>
SPACECRAFT_ALTITUDE = 120.804 <km>
SPACECRAFT_GROUND_SPEED = 1.511 <km/s>
/*** CAMERA RELATED PARAMETERS ***/
VIS_BAND_NUMBER = 84
VIS_SPECTRAL_COVERAGE = (482.6 <nm>, 980.6 <nm>)
VIS_BAND_WIDTH = 6.0 <nm>
N1_BAND_NUMBER = 100
N1_SPECTRAL_COVERAGE = (894.4 <nm>, 1688.9 <nm>)
N1_BAND_WIDTH = 8.0 <nm>
N2_BAND_NUMBER = 112
N2_SPECTRAL_COVERAGE = (1694.9 <nm>, 2583.1 <nm>)
N2_BAND_WIDTH = 8.0 <nm>
PROCESS_PARAMETER_FILE_NAME = "SP_higher_level_proc_param.txt"
DAYTIME_EQUATOR_CROSSING_LON = "N/A"
IMAGER = "MV2"
TM_DATA_SET_NAME = "MVA2A0_02NM04184_003_0111.sl2"
TM_CORRECTED_START_TIME = 2008-09-16T04:37:46.038504
TM_CORRECTED_STOP_TIME = 2008-09-16T04:38:00.065603
TM_CORRECTED_SAMPLING_INTERVAL = 12.999991 <ms>
TM_LINES = 1080
TM_LINE_SAMPLES = 962
TM_FIRST_PIXEL_NUMBER = 1
TM_LAST_PIXEL_NUMBER = 962
TM_UPPER_LEFT_LATITUDE = 18.421631 <deg>
TM_UPPER_LEFT_LONGITUDE = 5.692915 <deg>
TM_UPPER_RIGHT_LATITUDE = 18.412143 <deg>
TM_UPPER_RIGHT_LONGITUDE = 4.888181 <deg>
TM_LOWER_LEFT_LATITUDE = 19.121352 <deg>
TM_LOWER_LEFT_LONGITUDE = 5.683773 <deg>
TM_LOWER_RIGHT_LATITUDE = 19.111845 <deg>
TM_LOWER_RIGHT_LONGITUDE = 4.876056 <deg>
TM_SATURATED_PIXEL_PERCENTAGE = 0
TM_DEAD_PIXEL_PERCENTAGE = 0
TM_SHADOWED_AREA_PIXEL_PERCENT = 0
HIGH_SP_POINT_NUM = 0
NORMAL_SP_POINT_NUM = 38
UPPER_MARGIN_POINT_NUM = "N/A"
LOWER_MARGIN_POINT_NUM = "N/A"
CAL_LAMP_INFO = "N/A"
MATCHING_ACCURACY_INFO = "1001"
/*** DESCRIPTION OF OBJECTS CONTAINED IN THE FILE ***/
OBJECT = ANCILLARY_AND_SUPPLEMENT_DATA
INTERCHANGE_FORMAT = "BINARY"
ROWS = 38
COLUMNS = 43
ROW_BYTES = 166
OBJECT = COLUMN
NAME = "SPACECRAFT_CLOCK_COUNT"
DATA_TYPE = IEEE_REAL
UNIT = "sec"
START_BYTE = 1
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "VIS_FOCAL_PLANE_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 9
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "NIR1_FOCAL_PLANE_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 13
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "NIR2_FOCAL_PLANE_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "K"
START_BYTE = 17
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPECTROMETER_TEMPERATURE_1"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 21
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPECTROMETER_TEMPERATURE_2"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 25
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPECTROMETER_TEMPERATURE_3"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 29
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPECTROMETER_TEMPERATURE_4"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 33
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "HALOGEN_BULB_RADIANCE"
DATA_TYPE = IEEE_REAL
UNIT = "V"
START_BYTE = 37
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "HALOGEN_BULB_VOLTAGE1"
DATA_TYPE = IEEE_REAL
UNIT = "V"
START_BYTE = 41
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "HALOGEN_BULB_VOLTAGE2"
DATA_TYPE = IEEE_REAL
UNIT = "V"
START_BYTE = 45
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "HALOGEN_BULB_TEMPERATURE1"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 49
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "HALOGEN_BULB_TEMPERATURE2"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 53
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPACECRAFT_ALTITUDE"
DATA_TYPE = IEEE_REAL
UNIT = "km"
START_BYTE = 57
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPACECRAFT_GROUND_SPEED"
DATA_TYPE = IEEE_REAL
UNIT = "km/sec"
START_BYTE = 61
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SUB_SPACECRAFT_LATITUDE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 65
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SUB_SPACECRAFT_LONGITUDE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 73
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "CENTER_LATITUDE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 81
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "CENTER_LONGITUDE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 89
BYTES = 8
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "EMISSION_ANGLE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 97
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPACECRAFT_AZIMUTH"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 101
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "INCIDENCE_ANGLE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 105
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SOLAR_AZIMUTH_ANGLE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 109
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "PHASE_ANGLE"
DATA_TYPE = IEEE_REAL
UNIT = "deg"
START_BYTE = 113
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 117
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_PELTIER_HOT_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 121
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_N2_RADIATOR_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 125
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_CAL_VIS_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 129
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_CAL_NIR_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 133
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "DPU_TEMPERATURE"
DATA_TYPE = IEEE_REAL
UNIT = "degC"
START_BYTE = 137
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_POWER_P5V"
DATA_TYPE = IEEE_REAL
UNIT = "V"
START_BYTE = 141
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_POWER_M15V"
DATA_TYPE = IEEE_REAL
UNIT = "V"
START_BYTE = 145
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_POWER_P15V"
DATA_TYPE = IEEE_REAL
UNIT = "V"
START_BYTE = 149
BYTES = 4
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "CALIBRATION"
DATA_TYPE = MSB_INTEGER
UNIT = "N/A"
START_BYTE = 153
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SP_PELTIER"
DATA_TYPE = MSB_INTEGER
UNIT = "N/A"
START_BYTE = 154
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "TC_MI_STATUS"
DATA_TYPE = MSB_INTEGER
UNIT = "N/A"
START_BYTE = 155
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "CLOCK_COUNT_ERR_FLAG"
DATA_TYPE = MSB_INTEGER
UNIT = "N/A"
START_BYTE = 156
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SPATIAL_RESOLUTION_FLAG"
DATA_TYPE = MSB_UNSIGNED_INTEGER
UNIT = "N/A"
START_BYTE = 157
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "GEOMETRIC_INFO_RECAL_FLAG"
DATA_TYPE = MSB_UNSIGNED_INTEGER
UNIT = "N/A"
START_BYTE = 158
BYTES = 1
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SUPPORT_IMAGE_LINE_POSITION"
DATA_TYPE = MSB_UNSIGNED_INTEGER
UNIT = "N/A"
START_BYTE = 159
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "SUPPORT_IMAGE_COLUMN_POSITION"
DATA_TYPE = MSB_UNSIGNED_INTEGER
UNIT = "N/A"
START_BYTE = 161
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "THUMBNAIL_LINE_POSITION"
DATA_TYPE = MSB_UNSIGNED_INTEGER
UNIT = "N/A"
START_BYTE = 163
BYTES = 2
END_OBJECT = COLUMN
OBJECT = COLUMN
NAME = "THUMBNAIL_COLUMN_POSITION"
DATA_TYPE = MSB_UNSIGNED_INTEGER
UNIT = "N/A"
START_BYTE = 165
BYTES = 2
END_OBJECT = COLUMN
END_OBJECT = ANCILLARY_AND_SUPPLEMENT_DATA
OBJECT = SP_SPECTRUM_WAV
LINES = 1
LINE_SAMPLES = 296
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
IMAGE_VALUE_TYPE = "WAVELENGTH"
UNIT = "nm"
SCALING_FACTOR = 0.100000
OFFSET = 0.000000
END_OBJECT = SP_SPECTRUM_WAV
OBJECT = SP_SPECTRUM_RAW
LINES = 38
LINE_SAMPLES = 296
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
IMAGE_VALUE_TYPE = "RAW_DN"
UNIT = "ND"
SCALING_FACTOR = "N/A"
OFFSET = "N/A"
END_OBJECT = SP_SPECTRUM_RAW
OBJECT = SP_SPECTRUM_REF2
LINES = 38
LINE_SAMPLES = 296
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
IMAGE_VALUE_TYPE = "REFLECTANCE"
UNIT = "ND"
SCALING_FACTOR = 0.000100
OFFSET = 0.000000
END_OBJECT = SP_SPECTRUM_REF2
OBJECT = SP_SPECTRUM_RAD
LINES = 38
LINE_SAMPLES = 296
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
IMAGE_VALUE_TYPE = "RADIANCE"
UNIT = "W/m**2/micron/sr"
SCALING_FACTOR = 0.010000
OFFSET = 0.000000
END_OBJECT = SP_SPECTRUM_RAD
OBJECT = SP_SPECTRUM_REF1
LINES = 38
LINE_SAMPLES = 296
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
IMAGE_VALUE_TYPE = "REFLECTANCE"
UNIT = "ND"
SCALING_FACTOR = 0.000100
OFFSET = 0.000000
END_OBJECT = SP_SPECTRUM_REF1
OBJECT = SP_SPECTRUM_QA
LINES = 38
LINE_SAMPLES = 296
SAMPLE_TYPE = MSB_UNSIGNED_INTEGER
SAMPLE_BITS = 16
IMAGE_VALUE_TYPE = "QUALITY"
UNIT = "N/A"
SCALING_FACTOR = 1.000000
OFFSET = 0.000000
END_OBJECT = SP_SPECTRUM_QA
OBJECT = L2D_RESULT_ARRAY
LINES = 0
LINE_SAMPLES = 0
SAMPLE_TYPE = "N/A"
SAMPLE_BITS = NULL
IMAGE_VALUE_TYPE = "N/A"
UNIT = "N/A"
SCALING_FACTOR = "N/A"
OFFSET = "N/A"
AXES = NULL
AXIS_ITEMS = NULL
NAME = NULL
END_OBJECT = L2D_RESULT_ARRAY
END
File added
...@@ -24,7 +24,7 @@ class Spectral_Profiler(object): ...@@ -24,7 +24,7 @@ class Spectral_Profiler(object):
with key as the spectra index and value as the start byte offset with key as the spectra index and value as the start byte offset
""" """
def __init__(self, input_data, cleaned=True, qa_threshold=2000): def __init__(self, input_data, label=None, cleaned=True, qa_threshold=2000):
""" """
Read the .spc file, parse the label, and extract the spectra Read the .spc file, parse the label, and extract the spectra
...@@ -34,6 +34,9 @@ class Spectral_Profiler(object): ...@@ -34,6 +34,9 @@ class Spectral_Profiler(object):
input_data : string input_data : string
The PATH to the input .spc file The PATH to the input .spc file
label : string
The PATH to an optional detached label associated with the .spc
cleaned : boolean cleaned : boolean
If True, mask the data based on the QA array. If True, mask the data based on the QA array.
...@@ -49,8 +52,10 @@ class Spectral_Profiler(object): ...@@ -49,8 +52,10 @@ class Spectral_Profiler(object):
'MSB_INTEGER':'i', 'MSB_INTEGER':'i',
'MSB_UNSIGNED_INTEGER':'u'} 'MSB_UNSIGNED_INTEGER':'u'}
if label:
label = pvl.load(input_data) label = pvl.load(label)
else:
label = pvl.load(input_data)
self.label = label self.label = label
self.input_data = input_data self.input_data = input_data
with open(input_data, 'rb') as indata: with open(input_data, 'rb') as indata:
...@@ -63,7 +68,10 @@ class Spectral_Profiler(object): ...@@ -63,7 +68,10 @@ class Spectral_Profiler(object):
columns = [] columns = []
bytelengths = [] bytelengths = []
datatypes = [] datatypes = []
ancillary_data_offset = find_in_dict(label, "^ANCILLARY_AND_SUPPLEMENT_DATA").value try:
ancillary_data_offset = find_in_dict(self.label, "^ANCILLARY_AND_SUPPLEMENT_DATA").value
except:
ancillary_data_offset = find_in_dict(self.label, "^ANCILLARY_AND_SUPPLEMENT_DATA")[1].value
indata.seek(ancillary_data_offset - 1) indata.seek(ancillary_data_offset - 1)
for i in ancillary_data.items(): for i in ancillary_data.items():
if i[0] == 'COLUMN': if i[0] == 'COLUMN':
...@@ -109,7 +117,10 @@ class Spectral_Profiler(object): ...@@ -109,7 +117,10 @@ class Spectral_Profiler(object):
search_key = '^SP_SPECTRUM_{}'.format(d) search_key = '^SP_SPECTRUM_{}'.format(d)
result = find_in_dict(label, search_key) result = find_in_dict(label, search_key)
if result: if result:
array_offsets.append(result.value) try:
array_offsets.append(result.value)
except:
array_offsets.append(result[1].value) # 2C V3.0
keys.append('SP_SPECTRUM_{}'.format(d)) keys.append('SP_SPECTRUM_{}'.format(d))
offsets = dict(zip(keys, array_offsets)) offsets = dict(zip(keys, array_offsets))
......
...@@ -30,5 +30,16 @@ class Test_Spectral_Profiler_IO(unittest.TestCase): ...@@ -30,5 +30,16 @@ class Test_Spectral_Profiler_IO(unittest.TestCase):
self.assertIsInstance(ds.browse, GeoDataset) self.assertIsInstance(ds.browse, GeoDataset)
self.assertEqual(ds.browse.read_array().shape, (512, 456)) self.assertEqual(ds.browse.read_array().shape, (512, 456))
class Test_Spectral_Profiler_IO_Detached(unittest.TestCase):
def setUp(self):
self.examplefile = get_path('SP_2C_03_04184_N187_E0053.spc')
self.examplelabel = get_path('SP_2C_03_04184_N187_E0053.lbl')
def test_openspc(self):
ds = io_spectral_profiler.Spectral_Profiler(self.examplefile, self.examplelabel)
self.assertEqual(ds.nspectra, 38)
self.assertEqual(ds.spectra[0].columns.tolist(), ['RAW', 'REF1', 'REF2', 'QA', 'RAD'])
if __name__ == '__main__': if __name__ == '__main__':
unittest.main() unittest.main()
...@@ -8,7 +8,7 @@ with open('README.md', 'r') as f: ...@@ -8,7 +8,7 @@ with open('README.md', 'r') as f:
def setup_package(): def setup_package():
setup( setup(
name = "plio", name = "plio",
version = '1.1.0', version = '1.2.0',
author = "Jay Laura", author = "Jay Laura",
author_email = "jlaura@usgs.gov", author_email = "jlaura@usgs.gov",
description = ("I/O API to support planetary data formats."), description = ("I/O API to support planetary data formats."),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment