netcdf PACE_HARP2.YYYYMMDDTHHMMSS.L1A { // global attributes: :title = "HARP2 Level 1A data" ; :source = "Generated by l1agen_harp2.py" ; :L1AGen_version = "1.6.0" ; :processing_level = "L1A" ; :date_created = "2025-06-03T20:21:01.940Z" ; :acquisition_scheme = 4LL ; :time_coverage_start = "2025-01-01T00:00:04.000Z" ; :time_coverage_end = "2025-01-01T00:02:37.000Z" ; :arg_ast_code = 4LL ; :arg_start_time = "YYYYMMDDTHHMMSS" ; :arg_stop_time = "YYYYMMDDTHHMMSS" ; :arg_hkt_infile = "2500100_180_20241231235938_hkt.txt" ; :arg_ccd1_infile = "2500100_180_20241231235938_ccd1.txt" ; :arg_ccd2_infile = "2500100_180_20241231235938_ccd2.txt" ; :arg_ccd3_infile = "2500100_180_20241231235938_ccd3.txt" ; :arg_output = "PACE_HARP2.YYYYMMDDTHHMMSS.L1A.nc" ; :arg_noNORM = "False" ; :arg_precut = "False" ; :arg_instrument = "HARP2" ; :arg_firmware = "V1" ; :epoch_tai_year = 1958LL ; :epoch_tai_month = 1LL ; :epoch_tai_day = 1LL ; :processing_version = "3" ; :identifier_product_doi_authority = "https://dx.doi.org" ; :identifier_product_doi = "10.5067/PACE/HARP2/L1A/AST4/3" ; :history = "[2025-06-03T20:21:30] ncattredit.py PACE_HARP2.YYYYMMDDTHHMMSS.L1A.nc /tmp/PACE_HARP2.YYYYMMDDTHHMMSS.L1A.nc.2859110" ; group: image_data { dimensions: frames = UNLIMITED ; // (563 currently) lines = 90 ; pixels = 646 ; line_aux = 4 ; sensors = 3 ; variables: ushort sensor1(frames, lines, pixels) ; sensor1:_FillValue = 65535US ; sensor1:long_name = "Image read from HARP2 sensor1" ; sensor1:units = "counts" ; ushort sensor1aux(frames, lines, line_aux) ; sensor1aux:_FillValue = 65535US ; ushort sensor2(frames, lines, pixels) ; sensor2:_FillValue = 65535US ; sensor2:long_name = "Image read from HARP2 sensor2" ; sensor2:units = "counts" ; ushort sensor2aux(frames, lines, line_aux) ; sensor2aux:_FillValue = 65535US ; ushort sensor3(frames, lines, pixels) ; sensor3:_FillValue = 65535US ; sensor3:long_name = "Image read from HARP2 sensor3" ; sensor3:units = "counts" ; ushort sensor3aux(frames, lines, line_aux) ; sensor3aux:_FillValue = 65535US ; int frame_ID(frames, sensors) ; frame_ID:_FillValue = -9999999 ; frame_ID:long_name = "Image ID number read from image header" ; int time_in_seconds(frames, sensors) ; time_in_seconds:_FillValue = -9999999 ; time_in_seconds:long_name = "Acquisition Time in Seconds ... " ; int time_in_subseconds(frames, sensors) ; time_in_subseconds:_FillValue = -9999999 ; time_in_subseconds:long_name = "Elapsed microseconds of the second" ; time_in_subseconds:units = "microseconds" ; double JD(frames, sensors) ; JD:_FillValue = -9999999. ; JD:long_name = "Calculated Julian Day for each frame after checking times for all sensors" ; JD:units = "days" ; double seconds_of_day(frames, sensors) ; seconds_of_day:_FillValue = -9999999. ; seconds_of_day:long_name = "Calculated elapsed seconds of the day" ; seconds_of_day:units = "seconds" ; float ccd_temperature(frames, sensors) ; ccd_temperature:_FillValue = -9999999.f ; ccd_temperature:long_name = "Detector temperature" ; ccd_temperature:units = "degrees C" ; ccd_temperature:valid_min = -50.f ; ccd_temperature:valid_max = 60.f ; int integration_line(frames, sensors) ; integration_line:_FillValue = -9999999 ; integration_line:long_name = "Detector integration line" ; integration_line:valid_min = 0 ; integration_line:valid_max = 10000 ; float integration_time(frames, sensors) ; integration_time:_FillValue = -9999999.f ; integration_time:long_name = "Detector integration time" ; integration_time:units = "milliseconds" ; integration_time:valid_min = 1.f ; integration_time:valid_max = 1000.f ; int acquisition_scheme_ID(frames, sensors) ; acquisition_scheme_ID:_FillValue = -9999999 ; acquisition_scheme_ID:long_name = "Byte ID correlated to the table of Acquisition Schemes" ; int number_filters(frames, sensors) ; number_filters:_FillValue = -9999999 ; number_filters:long_name = "Filter number (value range = 1 to 90, bits: 6 to 0)" ; int pixel_clock(frames, sensors) ; pixel_clock:_FillValue = -9999999 ; pixel_clock:long_name = "HARP2 pixel clock-speed flag: 0 = 12.5MHz, 1 = 8.33MHz" ; int acquisition_type(frames, sensors) ; acquisition_type:_FillValue = -9999999 ; acquisition_type:long_name = "HARP2 acquisition mode flag: 0 = Indirect (Flash), 1 = Direct (SPW)" ; int image_type(frames, sensors) ; image_type:_FillValue = -9999999 ; image_type:long_name = "HARP2 operational mode flag: 0 = Science, 1 = Calibration" ; int shutter_status(frames, sensors) ; shutter_status:_FillValue = -9999999 ; shutter_status:long_name = "HARP2 shutter flag: 0 = Open, 1 = Diffuser, 2 = Dark" ; int binning_cross_track(frames, sensors) ; binning_cross_track:_FillValue = -9999999 ; binning_cross_track:long_name = "Cross-track binning mode: 0 = no binning, 2 = binning by 2, 4 = custom SCI binning" ; // group attributes: :long_name = "Group for HARP2 detector image data and status" ; } // group image_data group: navigation_data { dimensions: quaternion_elements = 4 ; vector_elements = 3 ; att_records = UNLIMITED ; // (422 currently) orb_records = UNLIMITED ; // (106 currently) variables: double att_time(att_records) ; att_time:_FillValue = -999. ; att_time:long_name = "Attitude sample time (seconds of day)" ; att_time:units = "seconds" ; att_time:valid_min = 0. ; att_time:valid_max = 86400.999999 ; double att_quat(att_records, quaternion_elements) ; att_quat:_FillValue = -9999999. ; att_quat:long_name = "Attitude quaternions (J2000 to spacecraft), in the order of q1, q2, q3, and q0" ; att_quat:units = "unitless" ; att_quat:valid_min = -1. ; att_quat:valid_max = 1. ; double att_rate(att_records, vector_elements) ; att_rate:_FillValue = -9999999. ; att_rate:long_name = "Attitude angular rates in spacecraft frame" ; att_rate:units = "\"radians/second" ; att_rate:valid_min = -0.004 ; att_rate:valid_max = 0.004 ; double orb_time(orb_records) ; orb_time:_FillValue = -999. ; orb_time:long_name = "Julian Day for Spacecraft Orbit Records" ; orb_time:units = "Day" ; float orb_pos(orb_records, vector_elements) ; orb_pos:_FillValue = -9999999.f ; orb_pos:long_name = "Spacecraft position vector in ECEF (ECR) frame" ; orb_pos:units = "meters" ; orb_pos:valid_min = -7200000.f ; orb_pos:valid_max = 7200000.f ; float orb_vel(orb_records, vector_elements) ; orb_vel:_FillValue = -9999999.f ; orb_vel:long_name = "Spacecraft velocity vector in ECEF (ECR) frame" ; orb_vel:units = "meters/second" ; orb_vel:valid_min = -7600.f ; orb_vel:valid_max = 7600.f ; double orb_lon(orb_records) ; orb_lon:_FillValue = -999. ; orb_lon:long_name = "Orbit longitude (degrees East)" ; orb_lon:units = "degrees" ; orb_lon:valid_min = -180. ; orb_lon:valid_max = 180. ; double orb_lat(orb_records) ; orb_lat:_FillValue = -999. ; orb_lat:long_name = "Orbit latitude (degrees North)" ; orb_lat:units = "degrees" ; orb_lat:valid_min = -90. ; orb_lat:valid_max = 90. ; double orb_alt(orb_records) ; orb_alt:_FillValue = -999. ; orb_alt:long_name = "Orbit altitude" ; orb_alt:units = "meters" ; orb_alt:valid_min = 660000. ; orb_alt:valid_max = 720000. ; // group attributes: :long_name = "Group for spacecraft position and attitude" ; } // group navigation_data }