Newer
Older
.. ICARTT documentation master file, created by
sphinx-quickstart on Thu Feb 10 09:33:37 2022.
You can adapt this file completely to your liking, but it should at least
contain the root `toctree` directive.
The ICARTT data format is described here: https://www-air.larc.nasa.gov/missions/etc/IcarttDataFormat.htm
.. toctree::
:maxdepth: 2
:caption: Contents:
Installation
------------
Example
------------
Using an existing dataset
^^^^^^^^^^^^^^^^^^^^^^^^^^
::
import icartt
# load a new dataset from an existing file
ict = icartt.Dataset('path/to/example.ict')
# list variable names
ict.varnames
# e.g. ['Fractional_Day', 'UTC', 'JDAY', 'INDEX', 'FLIGHT', 'LOCAL_SUN_TIME', ...
# get data for variable 'UTC':
ict['UTC']
# some metadata
ict.organization
ict.dataSource
ict.mission
# add data, depending of format and type of variable:
- file type 1001, add value of independent variable:
ivar.append(234.4)
- file type 1001, add value of dependent variable:
ivar.append(234.4, 18.2)
- file type 2110, add value of independent (unbounded) variable:
ivar.append(234.4)
- file type 2110, add value of independent (bounded) variable:
ivar.append(234.4, 9148.2)
- file type 2110, add value of dependent variable:
ivar.append(234.4, 9148.2, 34.2)
# write to (other) file:
with open('path/to/output.ict', 'wb') as f:
ict.write(f)
Creating a new dataset
^^^^^^^^^^^^^^^^^^^^^^^
::
ict = icartt.Dataset(format=icartt.Formats.FFI1001)
ict.PIName = 'Knote, Christoph'
ict.PIAffiliation = 'Faculty of Medicine, University Augsburg, Germany'
ict.dataSourceDescription = 'Example data'
ict.missionName = 'MBEES'
ict.dateOfCollection = datetime.datetime.today()
ict.dateOfRevision = datetime.datetime.today()
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
ict.dataIntervalCode = [ 0 ]
ict.independentVariable = icartt.Variable( 'Time_Start',
'seconds_from_0_hours_on_valid_date',
'Time_Start',
'Time_Start',
vartype=icartt.VariableType.IndependentVariable,
scale=1.0, miss=-9999999)
#ict.independentBoundedVariable = None
#ict.auxiliaryVariables = ...
ict.dependentVariables['Time_Stop'] = icartt.Variable( 'Time_Stop',
'seconds_from_0_hours_on_valid_date',
'Time_Stop',
'Time_Stop',
scale=1.0, miss=-9999999)
ict.dependentVariables['Payload'] = icartt.Variable( 'Payload',
'some_units',
'Payload',
'Payload',
scale=1.0, miss=-9999999)
ict.specialComments.append("Some comments on this dataset:")
ict.specialComments.append("They are just examples!")
ict.specialComments.append("Adapt as needed.")
ict.endDefineMode()
# Three ways to add data:
# 1) simple (single data line)
ict.data.add( Time_Start = 12.3, Time_Stop = 12.5, Payload = 23789423.2e5 )
# Let's check:
ict.write()
# Seems to have worked!
# 2) as dictionary (single data line)
ict.data.add( **{ 'Time_Start': 12.6, 'Time_Stop': 13.1, 'Payload': 324235644.1e5 } )
# (note, we are merely exploding the dictionary to resemble method 1)
# 3) as NumPy array (bulk)
import numpy as np
data = np.array( [ (13.4, 14.0, 2348925e5), (14.1, 14.9, 23425634e5) ] )
ict.data.addBulk( data )
# Note: you are responsible to ensure that the order of elements in a data line
# corresponds to variable listing below:
print( [ x for x in ict.variables ] )
# Note: for single lines, you still need to make it an array!
data = np.array( [ (15.4, 15.0, 52452495290e5) ] )
.. module:: icartt
Formats
^^^^^^^^^^
.. autoenum:: Formats
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`