Open/close a CEF file
cef_read (<filename>) → integer
Reads a CEF file, loads all data and metadata in memory.
Returns the number of records in the file
IDL> n = CEF_READ("C1_CP_FGM_FULL__20050101_000000_20050102_000000_V070906.cef")
% Loaded DLM: CEF.
1 : CEF.Open_CEF_file :
C1_CP_FGM_FULL__20050101_000000_20050102_000000_V070906.cef
1 : CEF.Read_CEF_header : 2167422 records found in 3.48 seconds
1 : CEF.Read_CEF_header : 11 values per record
1 : CEF.Display_variables : 7 variables + 0 constants
1 : CEF.Read_CEF_file : 2167422 records physically read in 2.74
seconds
1 : CEF.Read_CEF_file : STATUS = 0 : OK : Terminaison correcte
cef_close
Will release all memory used to handle the file and its data
cef_verbosity, <level>
will change the verbosity level of the CEFLIB, which can be usefull to debug problems while reading CEF files
Defaut <level> is 1, and can be increased up to 5
Global metadata
cef_metanames () → array of stings
Returns the list of metadata sections
IDL> print, CEF_METANAMES()
MISSION MISSION_TIME_SPAN MISSION_AGENCY MISSION_DESCRIPTION
MISSION_KEY_PERSONNEL MISSION_REFERENCES MISSION_REGION MISSION_CAVEATS
OBSERVATORY OBSERVATORY_CAVEATS OBSERVATORY_DESCRIPTION OBSERVATORY_TIME_SPAN
OBSERVATORY_REGION EXPERIMENT EXPERIMENT_DESCRIPTION INVESTIGATOR_COORDINATES
EXPERIMENT_REFERENCES EXPERIMENT_KEY_PERSONNEL EXPERIMENT_CAVEATS
INSTRUMENT_NAME INSTRUMENT_DESCRIPTION INSTRUMENT_TYPE MEASUREMENT_TYPE
INSTRUMENT_CAVEATS DATASET_ID DATA_TYPE DATASET_TITLE DATASET_DESCRIPTION
CONTACT_COORDINATES TIME_RESOLUTION MIN_TIME_RESOLUTION MAX_TIME_RESOLUTION
PROCESSING_LEVEL ACKNOWLEDGEMENT DATASET_CAVEATS LOGICAL_FILE_ID
VERSION_NUMBER DATASET_VERSION FILE_CAVEATS FILE_TYPE METADATA_TYPE
METADATA_VERSION FILE_TIME_SPAN GENERATION_DATE
cef_meta (<section>) → array of strings
Returns the list of string entries for this metadata section
IDL> print, CEF_META("DATASET_DESCRIPTION")
This dataset contains full resolution measurements of the magnetic field
vector from the FGM experiment on the Cluster C1 spacecraft
cef_gattributes () → array of strings
Returns the list of global attributes names
IDL> print, CEF_GATTRIBUTES()
FILE_NAME FILE_FORMAT_VERSION END_OF_RECORD_MARKER DATA_UNTIL
cef_gattr (<attribute>) → string or array of strings
Returns value of a global attribute:
-
result should be a string if the attribute has an unique value
-
or a list of strings for multi-valued attributes
IDL> print, CEF_GATTR("FILE_NAME")
C1_CP_FGM_FULL__20050101_000000_20050102_000000_V070906.cef
CEF variables
cef_varnames () → array
Return the list of CEF variables found in the file
IDL> print, CEF_VARNAMES()
time_tags half_interval B_vec_xyz_gse B_mag sc_pos_xyz_gse range tm
cef_var (<var-name>) → IDL array
Creates an IDL variable, with the content of a given CEF-variable.
It should be an array of 1 to 6 dimensions of string, integer, float, depending on type of the CEF variable.
filename = "C1_CP_FGM_FULL__20050101_000000_20050102_000000_V070906.cef"
n = CEF_READ (filename)
t = CEF_VAR ("time_tags")
b = CEF_VAR ("b_vec_xyz_gse")
cef_vattributes (<cef-varname>) → array of strings
Returns the list of attributes names for a given variable
IDL> print, CEF_VATTRIBUTES("B_vec_xyz_gse")
PARAMETER_TYPE ENTITY PROPERTY FLUCTUATIONS CATDESC UNITS SI_CONVERSION
TENSOR_ORDER COORDINATE_SYSTEM REPRESENTATION_1 SIZES VALUE_TYPE
SIGNIFICANT_DIGITS FILLVAL QUALITY FIELDNAM LABLAXIS DEPEND_0 LABEL_1
cef_vattr (<cef-varname>, <attribute>) → string ot array of strings
Returns attribute value for a given CEF variable attribute:
-
result should be a string if the attribute has an unique value
-
or a list of strings for multi-valued attributes
IDL> print, CEF_VATTR("B_vec_xyz_gse", "SI_CONVERSION")
1.0E-9>T
cef_depends (<cef-varname>) → array of strings
Returns a list of DEPEND_i variables names for a given CEF variable
The first one corresponds to the DEPEND_0, then DEPEND_1, DEPEND_2, …
Values can be empty strings if DEPEND_i attribute is not set.
IDL> print, CEF_DEPENDS("B_vec_xyz_gse")
time_tags
Time-tags functions
milli_to_julian (<time-tag-variable>) → array of double
CEFLIB time-tags are coded internally in milli-seconds from 1958
This function converts these time-tags into corresponding Julian days
Input can be a scalar or an array, of ISO_TIME or ISO_TIME_RANGE data
milli_to_epoch (<time-tag-variable>) → array of double
CEFLIB time-tags are coded internally in milli-seconds from 1958
This function converts these time-tags into corresponding CEF Epoch time
Input can be a scalar or an array, of ISO_TIME or ISO_TIME_RANGE data
milli_to_isotime (<time-tag-variable>,<number-of-digits>) → array of strings
This function will convert internal time-tags in ISOTIME strings.
The first argument could be an ISO_TIME or ISO_TIME_RANGE CEF variable
The second arguments give the number of digits expected for fractional seconds: (0: seconds, 3: milli-seconds, 6: micro-seconds)
How to open a CEF file and print time-tags with micro-seconds resolution :
nrec = CEF_READ ("some-cef-file.cef")
print, MILLI_TO_ISOTIME (CEF_VAR ("time_tags"), 6)
Examples of use
PRO fgm
filename = "C1_CP_FGM_FULL__20050101_000000_20050102_000000_V070906.cef"
n = CEF_READ (filename)
t = CEF_VAR ("time_tags")
b = CEF_VAR ("b_vec_xyz_gse")
tt = MILLI_TO_JULIAN (t)
bx = b [0,*]
by = b [1,*]
bz = b [2,*]
temp = LABEL_DATE (date_format = "%H:%I")
PLOT, tt, bx, COLOR = 'ff0000'x, $
TITLE = "FGM DATA", $
xtickformat = "LABEL_DATE", $
BACKGROUND = 'ffffff'x
OPLOT, tt, by, COLOR = '00ff00'x
OPLOT, tt, bz, COLOR = '0000ff'x
END