netcdf pvcsashevisM1.b1.20130621.000433 { dimensions: time = UNLIMITED ; // (75 currently) test_incident_angle = 101 ; wavelength_vis = 2048 ; variables: int base_time ; base_time:string = "20-Jun-2013,23:29:07 GMT" ; base_time:long_name = "Base time in Epoch" ; base_time:units = "seconds since 1970-1-1 0:00:00 0:00" ; double time_offset(time) ; time_offset:long_name = "Time offset from base_time" ; time_offset:units = "seconds since 2013-06-20 23:29:07 0:00" ; double time(time) ; time:long_name = "Time offset from midnight" ; time:units = "seconds since 2013-06-21 00:00:00 0:00" ; int qc_time(time) ; qc_time:long_name = "Quality check results on field: Time offset from midnight" ; qc_time:units = "unitless" ; qc_time:description = "This field contains bit packed values which should be interpreted as listed. No bits set (zero) represents good data." ; qc_time:bit_1_description = "Delta time between current and previous samples is zero." ; qc_time:bit_1_assessment = "Indeterminate" ; qc_time:bit_2_description = "Delta time between current and previous samples is less than the delta_t_lower_limit field attribute." ; qc_time:bit_2_assessment = "Indeterminate" ; qc_time:bit_3_description = "Delta time between current and previous samples is greater than the delta_t_upper_limit field attribute." ; qc_time:bit_3_assessment = "Indeterminate" ; qc_time:delta_t_lower_limit = "delta_t_lower_limit" ; qc_time:delta_t_upper_limit = "delta_t_upper_limit" ; qc_time:prior_sample_flag = 1 ; qc_time:comment = "If the \'prior_sample_flag\' is set the first sample time from a new raw file will be compared against the time just previous to it in the stored data. If it is not set the qc_time value for the first sample will be set to 0." ; float wavelength_vis(wavelength_vis) ; wavelength_vis:long_name = "Wavelength of VIS spectrometer pixels" ; wavelength_vis:units = "nm" ; float airmass(time) ; airmass:long_name = "Airmass" ; airmass:units = "unitless" ; airmass:valid_min = 1.f ; airmass:valid_max = 100.f ; airmass:valid_delta = 1.f ; airmass:comment = "Includes correction for atmospheric refraction (apparent solar position) and for spherical atmosphere" ; airmass:algorithm = "Originally sunae.c (use in MFRSR Langley VAP), ported to .net by Derek Hopkin in SASPect instrument SW." ; airmass:missing_value = -9999.f ; int qc_airmass(time) ; qc_airmass:long_name = "Quality check results on field: Airmass" ; qc_airmass:units = "unitless" ; qc_airmass:description = "See global attributes for individual bit descriptions." ; float atmos_pressure(time) ; atmos_pressure:long_name = "Atmospheric pressure" ; atmos_pressure:units = "kPa" ; atmos_pressure:comment = "Atmospheric pressure from MEMS sensor" ; atmos_pressure:missing_value = -9999.f ; float mio_temperature_mems(time) ; mio_temperature_mems:long_name = "Temperature of multi-IO box from MEMS sensor" ; mio_temperature_mems:units = "degC" ; mio_temperature_mems:valid_min = 15.f ; mio_temperature_mems:valid_max = 45.f ; mio_temperature_mems:valid_delta = 1.f ; mio_temperature_mems:missing_value = -9999.f ; int qc_mio_temperature_mems(time) ; qc_mio_temperature_mems:long_name = "Quality check results on field: Temperature of multi-IO box from MEMS sensor" ; qc_mio_temperature_mems:units = "unitless" ; qc_mio_temperature_mems:description = "See global attributes for individual bit descriptions." ; float mio_temperature_trh(time) ; mio_temperature_trh:long_name = "Temperature of MIO box from TRH sensor" ; mio_temperature_trh:units = "degF" ; mio_temperature_trh:valid_min = 60.f ; mio_temperature_trh:valid_max = 120.f ; mio_temperature_trh:valid_delta = 3.f ; mio_temperature_trh:comment = "Should compare well with MIO_temperature_MEMS_F" ; mio_temperature_trh:missing_value = -9999.f ; int qc_mio_temperature_trh(time) ; qc_mio_temperature_trh:long_name = "Quality check results on field: Temperature of MIO box from TRH sensor" ; qc_mio_temperature_trh:units = "unitless" ; qc_mio_temperature_trh:description = "See global attributes for individual bit descriptions." ; float mio_rh(time) ; mio_rh:long_name = "MIO relative humidity from TRH sensor" ; mio_rh:units = "%" ; mio_rh:valid_min = 0.f ; mio_rh:valid_max = 100.f ; mio_rh:valid_delta = 4.f ; mio_rh:missing_value = -9999.f ; int qc_mio_rh(time) ; qc_mio_rh:long_name = "Quality check results on field: MIO relative humidity from TRH sensor" ; qc_mio_rh:units = "unitless" ; qc_mio_rh:description = "See global attributes for individual bit descriptions." ; float collector_temperature(time) ; collector_temperature:long_name = "Collector internal temperature from TRH sensor" ; collector_temperature:units = "degC" ; collector_temperature:valid_min = 0.f ; collector_temperature:valid_max = 50.f ; collector_temperature:valid_delta = 2.f ; collector_temperature:missing_value = -9999.f ; int qc_collector_temperature(time) ; qc_collector_temperature:long_name = "Quality check results on field: Collector internal temperature from TRH sensor" ; qc_collector_temperature:units = "unitless" ; qc_collector_temperature:description = "See global attributes for individual bit descriptions." ; float collector_rh(time) ; collector_rh:long_name = "Collector internal relative humidity from TRH sensor" ; collector_rh:units = "%" ; collector_rh:valid_min = 0.f ; collector_rh:valid_max = 90.f ; collector_rh:valid_delta = 4.f ; collector_rh:missing_value = -9999.f ; int qc_collector_rh(time) ; qc_collector_rh:long_name = "Quality check results on field: Collector internal relative humidity from TRH sensor" ; qc_collector_rh:units = "unitless" ; qc_collector_rh:description = "See global attributes for individual bit descriptions." ; float collector_dewpoint(time) ; collector_dewpoint:long_name = "Collector internal dew point" ; collector_dewpoint:units = "degC" ; collector_dewpoint:comment = "Computed from collector T and RH" ; collector_dewpoint:missing_value = -9999.f ; float chiller_temperature(time) ; chiller_temperature:long_name = "Spectrometer chiller internal temperature" ; chiller_temperature:units = "degC" ; chiller_temperature:valid_min = 0.f ; chiller_temperature:valid_max = 15.f ; chiller_temperature:comment = "Internal spectrometer chiller temperature from TRH sensor" ; chiller_temperature:missing_value = -9999.f ; int qc_chiller_temperature(time) ; qc_chiller_temperature:long_name = "Quality check results on field: Spectrometer chiller internal temperature" ; qc_chiller_temperature:units = "unitless" ; qc_chiller_temperature:description = "See global attributes for individual bit descriptions." ; float chiller_rh(time) ; chiller_rh:long_name = "Spectrometer chiller internal RH" ; chiller_rh:units = "%" ; chiller_rh:valid_min = 0.f ; chiller_rh:valid_max = 90.f ; chiller_rh:valid_delta = 4.f ; chiller_rh:comment = "Internal spectrometer chiller relative humidity from TRH sensor" ; chiller_rh:missing_value = -9999.f ; int qc_chiller_rh(time) ; qc_chiller_rh:long_name = "Quality check results on field: Spectrometer chiller internal RH" ; qc_chiller_rh:units = "unitless" ; qc_chiller_rh:description = "See global attributes for individual bit descriptions." ; float chiller_dewpoint(time) ; chiller_dewpoint:long_name = "Spectrometer chiller internal dew point" ; chiller_dewpoint:units = "degC" ; chiller_dewpoint:valid_min = -55.f ; chiller_dewpoint:valid_max = 0.f ; chiller_dewpoint:comment = "Computed from Internal spectrometer chiller T and RH." ; chiller_dewpoint:missing_value = -9999.f ; int qc_chiller_dewpoint(time) ; qc_chiller_dewpoint:long_name = "Quality check results on field: Spectrometer chiller internal dew point" ; qc_chiller_dewpoint:units = "unitless" ; qc_chiller_dewpoint:description = "See global attributes for individual bit descriptions." ; float collector_x_tilt(time) ; collector_x_tilt:long_name = "Collector tilt along band axis" ; collector_x_tilt:units = "degree" ; collector_x_tilt:valid_min = -2.f ; collector_x_tilt:valid_max = 2.f ; collector_x_tilt:valid_delta = 0.1f ; collector_x_tilt:comment = "Measured with MEMS device mounted in rotating frame. True level will show no deviation from a constant calibration offset as collector stage is rotated." ; collector_x_tilt:missing_value = -9999.f ; int qc_collector_x_tilt(time) ; qc_collector_x_tilt:long_name = "Quality check results on field: Collector tilt along band axis" ; qc_collector_x_tilt:units = "unitless" ; qc_collector_x_tilt:description = "See global attributes for individual bit descriptions." ; float collector_y_tilt(time) ; collector_y_tilt:long_name = "Collector tilt perpendicular to band axis" ; collector_y_tilt:units = "degree" ; collector_y_tilt:valid_min = -2.f ; collector_y_tilt:valid_max = 2.f ; collector_y_tilt:valid_delta = 0.1f ; collector_y_tilt:comment = "Measured with MEMS device mounted in rotating frame. True level will show no deviation from a constant calibration offset as collector stage is rotated." ; collector_y_tilt:missing_value = -9999.f ; int qc_collector_y_tilt(time) ; qc_collector_y_tilt:long_name = "Quality check results on field: Collector tilt perpendicular to band axis" ; qc_collector_y_tilt:units = "unitless" ; qc_collector_y_tilt:description = "See global attributes for individual bit descriptions." ; float collector_x_tilt_std(time) ; collector_x_tilt_std:long_name = "Standard deviation of collector tilt measured along band axis." ; collector_x_tilt_std:units = "degree" ; collector_x_tilt_std:comment = "True level will show no deviation from a constant calibration offset as collector stage is rotated." ; collector_x_tilt_std:missing_value = -9999.f ; float collector_y_tilt_std(time) ; collector_y_tilt_std:long_name = "Standard deviation of collector tilt measured perpendicular to band axis." ; collector_y_tilt_std:units = "degree" ; collector_y_tilt_std:comment = "True level will show no deviation from a constant calibration offset as collector stage is rotated." ; collector_y_tilt_std:missing_value = -9999.f ; float band_azimuth(time) ; band_azimuth:long_name = "Band axis orientation with respect to north" ; band_azimuth:units = "degree_N" ; band_azimuth:valid_min = -360.f ; band_azimuth:valid_max = 360.f ; band_azimuth:valid_delta = 1.f ; band_azimuth:comment = "Typically band orientation follows sun\'s motion across the sky." ; band_azimuth:missing_value = -9999.f ; int qc_band_azimuth(time) ; qc_band_azimuth:long_name = "Quality check results on field: Band axis orientation with respect to north" ; qc_band_azimuth:units = "unitless" ; qc_band_azimuth:description = "See global attributes for individual bit descriptions." ; float solar_azimuth(time) ; solar_azimuth:long_name = "Solar azimuth angle relative to north" ; solar_azimuth:units = "degree_N" ; solar_azimuth:comment = "From solar emphemeris based on lat, lon, and time/date." ; solar_azimuth:missing_value = -9999.f ; float solar_zenith(time) ; solar_zenith:long_name = "Solar zenith angle relative to vertical zenith." ; solar_zenith:units = "degree" ; solar_zenith:comment = "Apparent SZA from solar ephemeris with correction for refraction" ; solar_zenith:missing_value = -9999.f ; float cosine_solar_zenith_angle(time) ; cosine_solar_zenith_angle:long_name = "Cosine of apparent solar zenith angle" ; cosine_solar_zenith_angle:units = "unitless" ; cosine_solar_zenith_angle:comment = "Cosine of Apparent SZA from solar ephemeris with correction for refraction" ; cosine_solar_zenith_angle:missing_value = -9999.f ; float cosine_test_incident_angle(test_incident_angle) ; cosine_test_incident_angle:long_name = "cosine of angle of incidence during cosine bench tests" ; cosine_test_incident_angle:units = "unitless" ; cosine_test_incident_angle:high_sun_orientation = "0 is at zenith, 90 is at horizon on free non-driven end of shadowband." ; cosine_test_incident_angle:low_sun_orientation = "0 is at zenith, 90 is at CW horizon" ; float test_incident_angle(test_incident_angle) ; test_incident_angle:long_name = "angle of incidence during cosine bench measurements" ; test_incident_angle:units = "degree" ; test_incident_angle:high_sun_orientation = "0 is at zenith, 90 is at horizon on free non-driven end of shadowband." ; test_incident_angle:low_sun_orientation = "0 is at zenith, 90 is at CW horizon" ; float cosine_correction_hisun(test_incident_angle) ; cosine_correction_hisun:long_name = "cosine correction for high sun angles" ; cosine_correction_hisun:units = "unitless" ; cosine_correction_hisun:comment = "angle from zenith to horizon along the band axis" ; cosine_correction_hisun:comment_1 = "initially determined from lab measurements, refined through comparison with NIMFR" ; float cosine_correction_lowsun(test_incident_angle) ; cosine_correction_lowsun:long_name = "cosine correction for low sun angles" ; cosine_correction_lowsun:units = "unitless" ; cosine_correction_lowsun:comment = "angle from zenith to horizon normal to the band axis" ; cosine_correction_lowsun:comment_1 = "initially determined from lab measurements, refined through comparison with NIMFR" ; float cosine_correction_computed(time) ; cosine_correction_computed:long_name = "Cosine correction applied to direct_horizontal component" ; cosine_correction_computed:units = "unitless" ; cosine_correction_computed:comment = "Determined from the hi sun and low sun cosine corrections according to sun angle and whether the instrument is operating in \"hi sun\" mode with the band axis aligned with SAZ, or in \"low sun\" mode with the band axis normal to SAZ." ; cosine_correction_computed:missing_value = -9999.f ; float diffuse_correction ; diffuse_correction:long_name = "Cosine correction of diffuse component assuming isotropic sky" ; diffuse_correction:units = "unitless" ; float ad_temperature_spectrometer_vis(time) ; ad_temperature_spectrometer_vis:long_name = "Temperature of Si CCD AD board" ; ad_temperature_spectrometer_vis:units = "degC" ; ad_temperature_spectrometer_vis:valid_min = 5.f ; ad_temperature_spectrometer_vis:valid_max = 15.f ; ad_temperature_spectrometer_vis:valid_delta = 0.2f ; ad_temperature_spectrometer_vis:comment = "From NTC sensor cemented to optical bench." ; ad_temperature_spectrometer_vis:missing_value = -9999.f ; int qc_ad_temperature_spectrometer_vis(time) ; qc_ad_temperature_spectrometer_vis:long_name = "Quality check results on field: Temperature of Si CCD AD board" ; qc_ad_temperature_spectrometer_vis:units = "unitless" ; qc_ad_temperature_spectrometer_vis:description = "See global attributes for individual bit descriptions." ; float bench_temperature_spectrometer_vis(time) ; bench_temperature_spectrometer_vis:long_name = "Temperature of Si CCD optical bench" ; bench_temperature_spectrometer_vis:units = "degC" ; bench_temperature_spectrometer_vis:valid_min = 5.f ; bench_temperature_spectrometer_vis:valid_max = 15.f ; bench_temperature_spectrometer_vis:valid_delta = 0.2f ; bench_temperature_spectrometer_vis:comment = "From NTC sensor cemented to optical bench." ; bench_temperature_spectrometer_vis:missing_value = -9999.f ; int qc_bench_temperature_spectrometer_vis(time) ; qc_bench_temperature_spectrometer_vis:long_name = "Quality check results on field: Temperature of Si CCD optical bench" ; qc_bench_temperature_spectrometer_vis:units = "unitless" ; qc_bench_temperature_spectrometer_vis:description = "See global attributes for individual bit descriptions." ; float integration_time_spectrometer_vis(time) ; integration_time_spectrometer_vis:long_name = "Integration time of individual scans from Si CCD spectrometer" ; integration_time_spectrometer_vis:units = "ms" ; integration_time_spectrometer_vis:valid_min = 1.f ; integration_time_spectrometer_vis:valid_max = 1000.f ; integration_time_spectrometer_vis:comment = "The total exposure time for a given spectra will be the spectrometer integration time times the number of individual scans recorded." ; integration_time_spectrometer_vis:missing_value = -9999.f ; float number_of_scans_spectrometer_vis(time) ; number_of_scans_spectrometer_vis:long_name = "Number of spectrometer scans averaged for Si CCD spectra" ; number_of_scans_spectrometer_vis:units = "unitless" ; number_of_scans_spectrometer_vis:valid_min = 1.f ; number_of_scans_spectrometer_vis:valid_max = 1000.f ; number_of_scans_spectrometer_vis:comment = "The total exposure time for a given spectra will be the spectrometer integration time times the number of individual scans recorded." ; number_of_scans_spectrometer_vis:missing_value = -9999.f ; float direct_horizontal_spectrometer_vis(time, wavelength_vis) ; direct_horizontal_spectrometer_vis:long_name = "Direct horizontal solar irradiance from Si CCD spectrometer" ; direct_horizontal_spectrometer_vis:units = "W/m^2-nm" ; direct_horizontal_spectrometer_vis:missing_value = -9999.f ; direct_horizontal_spectrometer_vis:corrections = "dark subtracted, cosine corrected" ; float diffuse_hemisp_spectrometer_vis(time, wavelength_vis) ; diffuse_hemisp_spectrometer_vis:long_name = "Diffuse hemispheric irradiance component, Si CCD spectrometer" ; diffuse_hemisp_spectrometer_vis:units = "W/m^2-nm" ; diffuse_hemisp_spectrometer_vis:missing_value = -9999.f ; diffuse_hemisp_spectrometer_vis:corrections = "dark subtracted, cosine corrected" ; float direct_normal_spectrometer_vis(time, wavelength_vis) ; direct_normal_spectrometer_vis:long_name = "Direct normal solar irradiance, Si CCD spectrometer" ; direct_normal_spectrometer_vis:units = "W/m^2-nm" ; direct_normal_spectrometer_vis:missing_value = -9999.f ; direct_normal_spectrometer_vis:computation = "direct normal = direct horizontal / cos(sza)" ; direct_normal_spectrometer_vis:corrections = "dark subtracted, cosine corrected" ; float total_hemisp_spectrometer_vis(time, wavelength_vis) ; total_hemisp_spectrometer_vis:long_name = "Total hemispheric irradiance component, Si CCD spectrometer" ; total_hemisp_spectrometer_vis:units = "W/m^2-nm" ; total_hemisp_spectrometer_vis:missing_value = -9999.f ; total_hemisp_spectrometer_vis:computation = "total hemisp = diffuse hemisp + direct horizontal" ; total_hemisp_spectrometer_vis:corrections = "dark subtracted, cosine corrected" ; float responsivity_spectrometer_vis(wavelength_vis) ; responsivity_spectrometer_vis:long_name = "responsivity of Si CCD spectrometer" ; responsivity_spectrometer_vis:units = "(count/ms)/(W/m^2/nm)" ; responsivity_spectrometer_vis:comment = "normalized to spectrometer integration time in ms" ; responsivity_spectrometer_vis:spectrometer_serial_number = "" ; responsivity_spectrometer_vis:pixel_number = "" ; responsivity_spectrometer_vis:pixel_number_explanation = "The \"ith\" pixel starting from \"0\"" ; responsivity_spectrometer_vis:pixel_wavelength_nm = "" ; responsivity_spectrometer_vis:missing_value = -9999.f ; float lat ; lat:long_name = "North latitude" ; lat:units = "degree_N" ; lat:valid_min = -90.f ; lat:valid_max = 90.f ; float lon ; lon:long_name = "East longitude" ; lon:units = "degree_E" ; lon:valid_min = -180.f ; lon:valid_max = 180.f ; float alt ; alt:long_name = "Altitude above mean sea level" ; alt:units = "m" ; // global attributes: :command_line = "sas_ingest -n sashe -s pvc -f M1" ; :process_version = "ingest-sas-3.2-0.el5" ; :dod_version = "sashevis-b1-1.2" ; :site_id = "pvc" ; :facility_id = "M1: Cape Cod, Massachusetts" ; :input_source = "/data/collection/pvc/pvcsasheM1.00/SASHe_HiSun_vis_1s.20130620_232615.csv" ; :resolution_description = "The resolution field attributes refer to the number of significant digits relative to the decimal point that should be used in calculations. Using fewer digits might result in greater uncertainty. Using a larger number of digits should have no effect and thus is unnecessary. However, analyses based on differences in values with a larger number of significant digits than indicated could lead to erroneous results or misleading scientific conclusions.\n", "\n", "resolution for lat = 0.001\n", "resolution for lon = 0.001\n", "resolution for alt = 1" ; :serial_number = "" ; :serial_number_spectrometer_vis = "0911135U1" ; :qc_standards_version = "1.0" ; :qc_method = "Standard Mentor QC" ; :qc_comment = "The QC field values are a bit packed representation of true/false values for the tests that may have been performed. A QC value of zero means that none of the tests performed on the value failed.\n", "\n", "The QC field values make use of the internal binary format to store the results of the individual QC tests. This allows the representation of multiple QC states in a single value. If the test associated with a particular bit fails the bit is turned on. Turning on the bit equates to adding the integer value of the failed test to the current value of the field. The QC field\'s value can be interpreted by applying bit logic using bitwise operators, or by examining the QC value\'s integer representation. A QC field\'s integer representation is the sum of the individual integer values of the failed tests. The bit and integer equivalents for the first 5 bits are listed below:\n", "\n", "bit_1 = 00000001 = 0x01 = 2^0 = 1\n", "bit_2 = 00000010 = 0x02 = 2^1 = 2\n", "bit_3 = 00000100 = 0x04 = 2^2 = 4\n", "bit_4 = 00001000 = 0x08 = 2^3 = 8\n", "bit_5 = 00010000 = 0x10 = 2^4 = 16" ; :qc_bit_1_description = "Value is equal to missing_value." ; :qc_bit_1_assessment = "Bad" ; :qc_bit_2_description = "Value is less than the valid_min." ; :qc_bit_2_assessment = "Bad" ; :qc_bit_3_description = "Value is greater than the valid_max." ; :qc_bit_3_assessment = "Bad" ; :qc_bit_4_description = "Difference between current and previous values exceeds valid_delta." ; :qc_bit_4_assessment = "Indeterminate" ; :zeb_platform = "pvcsashevisM1.b1" ; :history = "created by user dsmgr on machine iron at 21-Jun-2013,2:46:01, using $State: zebra-zeblib-4.23-0.el5 $" ; }