/* Note a string "IGNORE" or value -128 means do not write attribute to file */ /* Flags for input SST */ #define SST_LAND_FLAG 2 #define SST_CLOUD_FLAG 4 #define SST_SUN_GLINT_FLAG 3 #define SST_GOES_SCATTERING_FLAG 6 /* SST netCDF variables */ #define MIN_ALLOWED_SST 271.35 #define MAX_ALLOWED_SST 310.0 #define SST_TYPE short #define SST_NODATA -32768 #define SST_OFFSET 273.15 #define SST_FACTOR 0.01 #define SST_MIN_VAL -5000 #define SST_MAX_VAL 5000 #define SST_UNITS "kelvin" #ifdef GDS16 #define SST_LONG_NAME "sea surface temperature" #define SST_NAME "sea_surface_temperature" #else #define SST_LONG_NAME "sea surface skin temperature" #define SST_NAME "sea_surface_temperature" #endif #define SST_SOURCE "NOAA OSPO" #define SST_REFERENCE "IGNORE" #define SST_REFERENCES "IGNORE" #ifdef GDS16 #define SST_COMMENT "IGNORE" #else #define SST_COMMENT "Skin temperature of the ocean" #endif /* SST DTime netCDF variables */ #define SST_DTIME_TYPE short #define SST_DTIME_NODATA -32768 #define SST_DTIME_OFFSET 0. #define SST_DTIME_FACTOR 1. #define SST_DTIME_UNITS "second" #define SST_DTIME_MIN_VAL -32767 #define SST_DTIME_MAX_VAL 32767 #define SST_DTIME_LONG_NAME "time difference from reference time" #define SST_DTIME_NAME "sst_dtime" #define SST_DTIME_SOURCE "IGNORE" #define SST_DTIME_REFERENCE "IGNORE" #define SST_DTIME_REFERENCES "IGNORE" #define SST_DTIME_COMMENT "time plus sst_dtime gives seconds after 00:00:00 UTC January 1, 1981" /* SSES_BIAS_ERROR netCDF variables */ #define SSES_BIAS_TYPE char #define SSES_BIAS_NODATA -128 #define SSES_BIAS_OFFSET 0. #define SSES_BIAS_FACTOR 0.02 #define SSES_BIAS_UNITS "kelvin" #define SSES_BIAS_MIN_VAL -127 #define SSES_BIAS_MAX_VAL 127 #define SSES_BIAS_LONG_NAME "SSES bias estimate" #define SSES_BIAS_NAME "sses_bias" #define SSES_BIAS_REFERENCE "IGNORE" #define SSES_BIAS_REFERENCES "IGNORE" #define SSES_BIAS_COMMENT "Estimated bias based on NOAA bias scheme (contact Andy.Harris@noaa.gov)" #define SSES_BIAS_DTIME "IGNORE" #define SSES_BIAS_SOURCE "IGNORE" #define SSES_BIAS_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SSES_BIAS_SOURCE_FLAG_VALUES 0 #define SSES_BIAS_SOURCE_FLAG_VALUES "0" /* SSES_STANDARD_DEVIATION netCDF variables */ #define SSES_STDEV_TYPE char #define SSES_STDEV_NODATA -128 #define SSES_STDEV_OFFSET 1. #define SSES_STDEV_FACTOR 0.01 #define SSES_STDEV_UNITS "kelvin" #define SSES_STDEV_MIN_VAL -127 #define SSES_STDEV_MAX_VAL 127 #define SSES_STDEV_LONG_NAME "SSES standard deviation" #define SSES_STDEV_NAME "sses_standard_deviation" #define SSES_STDEV_REFERENCE "IGNORE" #define SSES_STDEV_REFERENCES "IGNORE" #define SSES_STDEV_COMMENT "Estimated standard deviation based on NOAA bias scheme (contact Andy.Harris@noaa.gov)" #define SSES_STDEV_DTIME "IGNORE" #define SSES_STDEV_SOURCE "IGNORE" #define SSES_STDEV_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SSES_STDEV_SOURCE_FLAG_VALUES 0 #define SSES_STDEV_SOURCE_FLAG_VALUES "0" /* Delta SST from reference */ #define DT_ANAL_TYPE char #define DT_ANAL_NODATA -128 #define DT_ANAL_OFFSET 0. #define DT_ANAL_FACTOR 0.1 #define DT_ANAL_UNITS "kelvin" #define DT_ANAL_MIN_VAL -127 #define DT_ANAL_MAX_VAL 127 #define DT_ANAL_LONG_NAME "deviation from sst reference climatology" #define DT_ANAL_NAME "dt_analysis" #define DT_ANAL_REFERENCE "NCEP-RTG_SST_HR dataset" #define DT_ANAL_REFERENCES "IGNORE" #define DT_ANAL_COMMENT "Analysis used is NOAAs Real-time Global SST analysis at high resolution (0.083 degree)" #define DT_ANAL_DTIME "IGNORE" #define DT_ANAL_SOURCE "IGNORE" #define DT_ANAL_SOURCE_FLAG_MEANINGS "IGNORE" #define N_DT_ANAL_SOURCE_FLAG_VALUES 0 #define DT_ANAL_SOURCE_FLAG_VALUES "0" /* Surface Solar Irradiance */ /* Note we're always using a 3 hour average */ /* No longer included in GDSv2.0 */ #ifdef GDS16 #define SSI_TYPE char #define SSI_NODATA -128 #define SSI_OFFSET 500. #define SSI_FACTOR 4. #define SSI_UNITS "W m-2" #define SSI_MIN_VAL -127 #define SSI_MAX_VAL 127 #define SSI_LONG_NAME "surface solar irradiance" #define SSI_NAME "surface_solar_irradiance" #define SSI_REFERENCE "IGNORE" #define SSI_REFERENCES "IGNORE" #define SSI_COMMENT "IGNORE" #define SST_COMMENT_DTIME "IGNORE" #define SSI_SOURCE "IGNORE" #define SSI_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SSI_SOURCE_FLAG_VALUES 0 #define SSI_SOURCE_FLAG_VALUES "0" #define SSI_DTIME "IGNORE" /* SSI Dtime */ #define SSI_DTIME_TYPE char #define SSI_DTIME_NODATA -128 #define SSI_DTIME_OFFSET 0. #define SSI_DTIME_FACTOR 0.1 #define SSI_DTIME_UNITS "hour" #define SSI_DTIME_MIN_VAL -127 #define SSI_DTIME_MAX_VAL 127 #define SSI_DTIME_LONG_NAME "time difference of surface solar irradiance measurement from sst measurement" #define SSI_DTIME_NAME "ssi_dtime_from_sst" #define SSI_DTIME_REFERENCE "IGNORE" #define SSI_DTIME_REFERENCES "IGNORE" #define SSI_DTIME_COMMENT "IGNORE" #define SST_DTIME_DTIME "IGNORE" #define SSI_DTIME_SOURCE "IGNORE" #define SSI_DTIME_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SSI_DTIME_SOURCE_FLAG_VALUES 0 #define SSI_DTIME_SOURCE_FLAG_VALUES "0" #define SSI_DTIME_DTIME "IGNORE" #endif /* Wind Speed */ #define WIND_SPEED_MAX 12 #define WIND_TYPE char #define WIND_NODATA -128 #define WIND_OFFSET 0. #define WIND_FACTOR 1. #define WIND_UNITS "m s-1" #define WIND_MIN_VAL -127 #define WIND_MAX_VAL 127 #define WIND_LONG_NAME "wind speed" #define WIND_NAME "wind_speed" #define WIND_REFERENCE "IGNORE" #define WIND_REFERENCES "IGNORE" #define WIND_COMMENT "These wind speeds were created by NCEP and represent windows at 10 metres above the sea surface" #ifdef GDS16 #define WIND_SPEED_DTIME "IGNORE" #define WIND_SOURCE "IGNORE" #define WIND_SOURCE_FLAG_MEANINGS "IGNORE" #define N_WIND_SOURCE_FLAG_VALUES 1 #define WIND_SOURCE_FLAG_VALUES "100" #else #define WIND_SPEED_DTIME "0." #define WIND_SOURCE "WSP-NCEP-GFS-1deg" /* #define WIND_SOURCE_FLAG_MEANINGS "wind_speed_from_NOAA-NCEP-GFS_1_degree_model_space_and_time_interpolated" #define N_WIND_SOURCE_FLAG_VALUES 1 #define WIND_SOURCE_FLAG_VALUES "100" */ #define WIND_SOURCE_FLAG_MEANINGS "IGNORE" #define N_WIND_SOURCE_FLAG_VALUES 0 #define WIND_SOURCE_FLAG_VALUES "100" #endif /* Wind Speed Dtime */ #define WIND_DTIME_TYPE char #define WIND_DTIME_NODATA -128 #define WIND_DTIME_OFFSET 0. #define WIND_DTIME_FACTOR 0.1 #define WIND_DTIME_UNITS "hour" #define WIND_DTIME_MIN_VAL -127 #define WIND_DTIME_MAX_VAL 127 #define WIND_DTIME_LONG_NAME "time difference of wind speed measurement from sst measurement" #define WIND_DTIME_NAME "wind_speed_dtime_from_sst" #define WIND_SPEED_DTIME_DTIME "IGNORE" #define WIND_DTIME_SOURCE "IGNORE" #define WIND_SPEED_DTIME_SOURCE_FLAG_MEANINGS "IGNORE" #define N_WIND_SPEED_DTIME_SOURCE_FLAG_VALUES 1 #define WIND_SPEED_DTIME_SOURCE_FLAG_VALUES "100" #define WIND_DTIME_REFERENCE "IGNORE" #define WIND_DTIME_REFERENCES "IGNORE" #define WIND_DTIME_COMMENT "IGNORE" /* Sea ice fraction */ /* At the GHRSST 7 meeting this was redefined to be fraction I think */ #define ICE_TYPE char #define ICE_NODATA -128 #define ICE_DTIME_NODATA -128 #define ICE_OFFSET 0. #define ICE_FACTOR 0.01 #define ICE_UNITS "fraction" #define ICE_MIN_VAL 0 #define ICE_MAX_VAL 1 #define ICE_LONG_NAME "sea ice fraction" #define ICE_NAME "sea_ice_fraction" #define ICE_REFERENCE "IGNORE" #define ICE_REFERENCES "IGNORE" #define ICE_COMMENT "Fractional sea ice cover from NCEP GFS estimate" #define ICE_DTIME "IGNORE" #define ICE_SOURCE "ICE-NCEP-GFS-1deg" /* #define ICE_SOURCE_FLAG_MEANINGS "ice_fraction_from_NOAA-NCEP-GFS_1_degree_model_space_and_time_interpolated" #define N_ICE_SOURCE_FLAG_VALUES 1 #define ICE_SOURCE_FLAG_VALUES "100" */ #define ICE_SOURCE_FLAG_MEANINGS "IGNORE" #define N_ICE_SOURCE_FLAG_VALUES 0 #define ICE_SOURCE_FLAG_VALUES "100" /* Aerosol */ #define AEROSOL_TYPE char #define AEROSOL_NODATA -128 #define AEROSOL_OFFSET 1.27 #define AEROSOL_FACTOR 0.01 #define AEROSOL_UNITS "count" #define AEROSOL_MIN_VAL -127 #define AEROSOL_MAX_VAL 127 #define AEROSOL_LONG_NAME "aerosol optical depth" #define AEROSOL_NAME "aerosol_optical_depth" #define AEROSOL_REFERENCE "IGNORE" #define AEROSOL_REFERENCES "IGNORE" #define AEROSOL_COMMENT "IGNORE" #define AEROSOL_DTIME "IGNORE" #define AEROSOL_SOURCE "IGNORE" #define AEROSOL_SOURCE_FLAG_MEANINGS "IGNORE" #define N_AEROSOL_SOURCE_FLAG_VALUES 0 #define AEROSOL_SOURCE_FLAG_VALUES "0" /* Aerosol Dtime */ #define AEROSOL_DTIME_TYPE char #define AEROSOL_DTIME_NODATA -128 #define AEROSOL_DTIME_OFFSET 127 #define AEROSOL_DTIME_FACTOR 1 #define AEROSOL_DTIME_UNITS "hour" #define AEROSOL_DTIME_MIN_VAL -127 #define AEROSOL_DTIME_MAX_VAL 127 #define AEROSOL_DTIME_LONG_NAME "time difference of AOD measurement from sst measurement" #define AEROSOL_DTIME_NAME "aod_dtime_from_sst" #define AEROSOL_DTIME_REFERENCE "IGNORE" #define AEROSOL_DTIME_REFERENCES "IGNORE" #define AEROSOL_DTIME_COMMENT "IGNORE" #define AEROSOL_DTIME_DTIME "IGNORE" #define AEROSOL_DTIME_SOURCE "IGNORE" #define AEROSOL_DTIME_SOURCE_FLAG_MEANINGS "IGNORE" #define N_AEROSOL_DTIME_SOURCE_FLAG_VALUES 0 #define AEROSOL_DTIME_SOURCE_FLAG_VALUES "0" /* Aerosol Dynamic Indicator */ #define ADI_TYPE char #define ADI_NODATA -128 #define ADI_OFFSET 1.27 #define ADI_FACTOR 0.01 #define ADI_UNITS "count" #define ADI_MIN_VAL -127 #define ADI_MAX_VAL 127 #define ADI_LONG_NAME "aerosol dynamic indicator" #define ADI_NAME "aerosol_dynamic_indicator" #define ADI_REFERENCE "IGNORE" #define ADI_REFERENCES "IGNORE" #define ADI_COMMENT "Estimate of the potential for aerosol contamination" #define ADI_DTIME "IGNORE" #define ADI_SOURCE "AEROSOL-OSPO-100km" /* #define ADI_SOURCE_FLAG_MEANINGS "aerosol_from_NOAA-OSPO_100km_product" #define N_ADI_SOURCE_FLAG_VALUES 1 #define ADI_SOURCE_FLAG_VALUES "101" */ #define ADI_SOURCE_FLAG_MEANINGS "IGNORE" #define N_ADI_SOURCE_FLAG_VALUES 0 #define ADI_SOURCE_FLAG_VALUES "101" /* Aerosol Dtime */ #define ADI_DTIME_TYPE char #define ADI_DTIME_NODATA -128 #define ADI_DTIME_OFFSET 127 #define ADI_DTIME_FACTOR 1 #define ADI_DTIME_UNITS "hour" #define ADI_DTIME_MIN_VAL -127 #define ADI_DTIME_MAX_VAL 127 #define ADI_DTIME_LONG_NAME "time difference of ADI estimate from sst measurement" #define ADI_DTIME_NAME "adi_dtime_from_sst" #define ADI_DTIME_SOURCE "IGNORE" #define ADI_DTIME_REFERENCE "IGNORE" #define ADI_DTIME_REFERENCES "IGNORE" #define ADI_DTIME_COMMENT "Difference in hours between the ADI and SST data" #define ADI_DTIME_DTIME "IGNORE" #define ADI_DTIME_SOURCE "IGNORE" #define ADI_DTIME_SOURCE_FLAG_MEANINGS "IGNORE" #define N_ADI_DTIME_SOURCE_FLAG_VALUES 0 #define ADI_DTIME_SOURCE_FLAG_VALUES "0" /* Zenith angle */ #define ZENITH_TYPE char #define ZENITH_NODATA -128 #define ZENITH_OFFSET 0. #define ZENITH_FACTOR 1. #define ZENITH_UNITS "angular_degree" #define ZENITH_MIN_VAL -90 #define ZENITH_MAX_VAL 90 #define ZENITH_LONG_NAME "satellite zenith angle" #define ZENITH_NAME "satellite_zenith_angle" #define ZENITH_REFERENCE "IGNORE" #define ZENITH_REFERENCES "IGNORE" #define ZENITH_COMMENT "The satellite zenith angle at the time of the SST observation" #define ZENITH_DTIME "IGNORE" #define ZENITH_SOURCE "IGNORE" #define ZENITH_SOURCE_FLAG_MEANINGS "IGNORE" #define N_ZENITH_SOURCE_FLAG_VALUES 0 #define ZENITH_SOURCE_FLAG_VALUES "0" /* Solar Zenith angle */ #define SOLAR_ZENITH_TYPE char #define SOLAR_ZENITH_NODATA -128 #define SOLAR_ZENITH_OFFSET 0. #define SOLAR_ZENITH_FACTOR 1. #define SOLAR_ZENITH_UNITS "angular_degree" #define SOLAR_ZENITH_MIN_VAL 0 #define SOLAR_ZENITH_MAX_VAL 180 #define SOLAR_ZENITH_LONG_NAME "solar zenith angle" #define SOLAR_ZENITH_NAME "solar_zenith_angle" #define SOLAR_ZENITH_REFERENCE "IGNORE" #define SOLAR_ZENITH_REFERENCES "IGNORE" #define SOLAR_ZENITH_COMMENT "The solar zenith angle at the time of the SST observation" #define SOLAR_ZENITH_DTIME "IGNORE" #define SOLAR_ZENITH_SOURCE "IGNORE" #define SOLAR_ZENITH_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SOLAR_ZENITH_SOURCE_FLAG_VALUES 0 #define SOLAR_ZENITH_SOURCE_FLAG_VALUES "0" /***************************************************************************** * * Header file for writeNetCDF * * This header file controls the output to the file - limits/scales/comments * etc * * * Version History : * * 30 March 2006 - Original version : Jonathan Mittaz * 19 March 2006 - Tidied up code : Jonathan Mittaz */ /* Sources of wind speed */ #define WIND_CODE 5 #define WIND_LAND_CODE 7 #define SRC_WIND_TYPE char #define SRC_WIND_NODATA -128 #define SRC_WIND_OFFSET -128 #define SRC_WIND_FACTOR -128 #define SRC_WIND_UNITS "IGNORE" #define SRC_WIND_MIN_VAL 128 #define SRC_WIND_MAX_VAL -128 #define SRC_WIND_LONG_NAME "sources of wind speed" #define SRC_WIND_NAME "sources_of_wind_speed" #define SRC_WIND_REFERENCE "IGNORE" #define SRC_WIND_REFERENCES "IGNORE" #define SRC_WIND_COMMENT "0=No wind speed data available 1=AMSR-E data 2=TMI data 3=NWP:ECMWF 4=NWP:Met Office 5=NWP:NCEP 6=Reference climatology 7=NWP:NCEP including land values 8-15=Spare to be defined by RDAC as required" #define SRC_WIND_DTIME "IGNORE" #define SRC_WIND_SOURCE "IGNORE" #define SRC_WIND_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SRC_WIND_SOURCE_FLAG_VALUES 0 #define SRC_WIND_SOURCE_FLAG_VALUES "0" /* Sources of ssi */ #define SSI_CODE 5 #ifdef NOT_GDS_COMPLIENT_NOT_USE #define SSI_LAND_CODE 7 #endif #define SRC_SSI_TYPE char #define SRC_SSI_NODATA -128 #define SRC_SSI_OFFSET -128 #define SRC_SSI_FACTOR -128 #define SRC_SSI_UNITS "IGNORE" #define SRC_SSI_MIN_VAL 128 #define SRC_SSI_MAX_VAL -128 #define SRC_SSI_LONG_NAME "sources of surface solar irradiance" #define SRC_SSI_NAME "sources_of_ssi" #define SRC_SSI_REFERENCE "IGNORE" #define SRC_SSI_REFERENCES "IGNORE" #ifdef NOT_GDS_COMPLIENT_NOT_USE #define SRC_SSI_COMMENT "0=No SSI data available 1=MSG SEVIRI 2=GOES_E 3=GOES_W 4=ECMWF 5=NCEP 6=METOFFICE 7=NCEP including land values 8-15=For further use" #else #define SRC_SSI_COMMENT "0=No SSI data available 1=MSG SEVIRI 2=GOES_E 3=GOES_W 4=ECMWF 5=NCEP 6=METOFFICE 8-15=For further use" #define SRC_SSI_DTIME "IGNORE" #define SRC_SSI_SOURCE "IGNORE" #define SRC_SSI_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SRC_SSI_SOURCE_FLAG_VALUES 0 #define SRC_SSI_SOURCE_FLAG_VALUES "0" #endif /* Sources of ice speed */ #define ICE_CODE 5 #define SRC_ICE_TYPE char #define SRC_ICE_NODATA -128 #define SRC_ICE_OFFSET -128 #define SRC_ICE_FACTOR -128 #define SRC_ICE_UNITS "IGNORE" #define SRC_ICE_MIN_VAL 128 #define SRC_ICE_MAX_VAL -128 #define SRC_ICE_LONG_NAME "sources of sea ice fraction" #define SRC_ICE_NAME "sources_of_sea_ice_fraction" #define SRC_ICE_REFERENCE "IGNORE" #define SRC_ICE_REFERENCES "IGNORE" #define SRC_ICE_COMMENT "0=No sea ice set 1=NSIDC SSM/1 Cavialeri et al (1992) 2=AMSR-E 3=ECMWF 4=CMS (France) cloud mask used by Medspiration 5=NCEP 6-15=Spare to be defined as required" #define SRC_ICE_DTIME "IGNORE" #define SRC_ICE_SOURCE "IGNORE" #define SRC_ICE_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SRC_ICE_SOURCE_FLAG_VALUES 0 #define SRC_ICE_SOURCE_FLAG_VALUES "0" /* Sources of aerosol */ #define AEROSOL_CODE 1 #define SRC_AEROSOL_TYPE char #define SRC_AEROSOL_NODATA -128 #define SRC_AEROSOL_OFFSET -128 #define SRC_AEROSOL_FACTOR -128 #define SRC_AEROSOL_UNITS "IGNORE" #define SRC_AEROSOL_MIN_VAL 128 #define SRC_AEROSOL_MAX_VAL -128 #define SRC_AEROSOL_LONG_NAME "sources of aerosol optical depth" #define SRC_AEROSOL_NAME "sources_of_aod" #define SRC_AEROSOL_REFERENCE "IGNORE" #define SRC_AEROSOL_REFERENCES "IGNORE" #define SRC_AEROSOL_COMMENT "0=No AOD data available 1=NESDIS 2=NAVOCEANO 3=NAAPS 4-15=Spare (RDAC to suggest inputs here)" #define SRC_AEROSOL_DTIME "IGNORE" #define SRC_AEROSOL_SOURCE "IGNORE" #define SRC_AEROSOL_SOURCE_FLAG_MEANINGS "IGNORE" #define N_SRC_AEROSOL_SOURCE_FLAG_VALUES 0 #define SRC_AEROSOL_SOURCE_FLAG_VALUES "0" /* Rejection codes */ #ifdef GDS16 #define REJECTION_SST_RANGE 1 #define REJECTION_CLOUDY 4 #define REJECTION_LAND 64 #define REJECTION_ICE 16 #else #define REJECTION_SST_RANGE 1 #define REJECTION_CLOUDY 128 #define REJECTION_LAND 2 #define REJECTION_ICE 4 #define REJECTION_DAY 256 #define REJECTION_NIGHT 512 #define REJECTION_TWILIGHT 1024 #define REJECTION_GOES_SCAT 2048 #endif #ifdef GDS16 #define REJECTION_TYPE char #define REJECTION_NODATA 127 #define REJECTION_OFFSET -128 #define REJECTION_FACTOR -128 #define REJECTION_UNITS "IGNORE" #define REJECTION_MIN_VAL 128 #define REJECTION_MAX_VAL -128 #define REJECTION_LONG_NAME "rejection flag" #define REJECTION_NAME "rejection_flag" #define REJECTION_REFERENCE "IGNORE" #define REJECTION_REFERENCES "IGNORE" #define REJECTION_COMMENT "b0:1 = SST out of range b1:1=Cosmetic value b2:1=IR cloudy b3:1=MW rain b4:1=ice b5:1=spare b6:1=Land b7:1=spare" #define REJECTION_DTIME "IGNORE" #define REJECTION_SOURCE "IGNORE" #define REJECTION_SOURCE_FLAG_MASK "IGNORE" #define REJECTION_SOURCE_FLAG_MEANINGS "IGNORE" #define N_REJECTION_SOURCE_FLAG_VALUES 0 #define REJECTION_SOURCE_FLAG_VALUES "0" #else #define REJECTION_TYPE char #define REJECTION_NODATA 127 /* #define REJECTION_OFFSET -128 #define REJECTION_FACTOR -128 */ #define REJECTION_OFFSET -999 #define REJECTION_FACTOR -999 #define REJECTION_UNITS "IGNORE" #define REJECTION_MIN_VAL 127 #define REJECTION_MAX_VAL -128 #define REJECTION_LONG_NAME "L2P flags" #define REJECTION_NAME "l2p_flags" #define REJECTION_REFERENCE "IGNORE" #define REJECTION_REFERENCES "IGNORE" #define REJECTION_COMMENT "The flags are important to preperly use the data." #define REJECTION_DTIME "IGNORE" #define REJECTION_SOURCE "IGNORE" #define REJECTION_SOURCE_FLAG_MEANINGS "microwave land ice lake river sun_glint cloudy day_night night_flag twilight_flag goes_scattered_light" /* #define N_REJECTION_SOURCE_FLAG_VALUES 11 */ #define N_REJECTION_SOURCE_FLAG_VALUES 0 #define REJECTION_SOURCE_FLAG_MASK "1, 2, 4, 8, 16, 64, 128, 256, 512, 1024, 2048" #define REJECTION_SOURCE_FLAG_VALUES "1, 2, 4, 8, 16, 64, 128, 256, 512, 1024, 2048" #endif /* Confidence flags */ #define CONFIDENCE_WIND 8 #define CONFIDENCE_GLINT 32 #define CONFIDENCE_TYPE char #define CONFIDENCE_NODATA 127 #define CONFIDENCE_OFFSET -128 #define CONFIDENCE_FACTOR -128 #define CONFIDENCE_UNITS "IGNORE" #define CONFIDENCE_MIN_VAL 128 #define CONFIDENCE_MAX_VAL -128 #define CONFIDENCE_LONG_NAME "confidence flag" #define CONFIDENCE_NAME "confidence_flag" #define CONFIDENCE_REFERENCE "IGNORE" #define CONFIDENCE_REFERENCES "IGNORE" #define CONFIDENCE_COMMENT "b0:1 = potential side lobe contamination b1:1=relaxed rain contamination suspected b2:1=TMI SST retrieved in SST < 285K b3:1=high wind speed retrieval b4:1=sea ice retrieval for MW data b5:1=sun glint suspected b6:1=L2 native bias and standard deviation b7:L2 native confidence value" #define CONFIDENCE_DTIME "IGNORE" #define CONFIDENCE_SOURCE "IGNORE" #define CONFIDENCE_SOURCE_FLAG_MEANINGS "IGNORE" #define N_CONFIDENCE_SOURCE_FLAG_VALUES 0 #define CONFIDENCE_SOURCE_FLAG_VALUES "0" /* Proximity flags */ /* Proximity confidence defined off probability thresholds */ #define MIN_PROXIMITY_CODE_1 0. #define MAX_PROXIMITY_CODE_1 0.8 #define MIN_PROXIMITY_CODE_2 0.8 #define MAX_PROXIMITY_CODE_2 0.95 #define MIN_PROXIMITY_CODE_3 0.95 #define MAX_PROXIMITY_CODE_3 0.99 #define MIN_PROXIMITY_CODE_4 0.99 #define MAX_PROXIMITY_CODE_4 0.999 #define MIN_PROXIMITY_CODE_5 0.999 #define MAX_PROXIMITY_CODE_5 1.1 /* Define proximity */ #define PROXIMITY_UNPROCESSED 0 #define PROXIMITY_CLOUDY 1 #define PROXIMITY_BAD 2 #define PROXIMITY_SUSPECT 3 #define PROXIMITY_ACCEPTABLE 4 #define PROXIMITY_EXCELLENT 5 #define PROXIMITY_COOL 6 #ifdef GDS16 #define PROXIMITY_TYPE char #define PROXIMITY_NODATA 127 #define PROXIMITY_OFFSET -128 #define PROXIMITY_FACTOR -128 #define PROXIMITY_UNITS "IGNORE" #define PROXIMITY_MIN_VAL 0 #define PROXIMITY_MAX_VAL 5 #define PROXIMITY_LONG_NAME "proximity confidence value" #define PROXIMITY_NAME "proximity_confidence" #define PROXIMITY_REFERENCE "IGNORE" #define PROXIMITY_REFERENCES "IGNORE" #define PROXIMITY_COMMENT "0 = Unprocessed 1 = Cloudy 2 = Bad 3 = Suspect 4 = Acceptable 5 = Excellent" #define PROXIMITY_DTIME "IGNORE" #define PROXIMITY_SOURCE "IGNORE" #define PROXIMITY_SOURCE_FLAG_MEANINGS "IGNORE" #define N_PROXIMITY_SOURCE_FLAG_VALUES 0 #define PROXIMITY_SOURCE_FLAG_VALUES "0" #else #define PROXIMITY_TYPE char #define PROXIMITY_NODATA 127 #define PROXIMITY_OFFSET -128 #define PROXIMITY_FACTOR -128 #define PROXIMITY_UNITS "IGNORE" #define PROXIMITY_MIN_VAL 0 #define PROXIMITY_MAX_VAL 5 #define PROXIMITY_LONG_NAME "quality level of SST pixel" #define PROXIMITY_NAME "quality_level" #define PROXIMITY_REFERENCE "IGNORE" #define PROXIMITY_REFERENCES "IGNORE" #define PROXIMITY_COMMENT "These are the overall quality indicators and are used for all GHRSST SSTs" #define PROXIMITY_DTIME "IGNORE" #define PROXIMITY_SOURCE "IGNORE" #define PROXIMITY_SOURCE_FLAG_MEANINGS "no_data bad_data worst_quality low_quality acceptable_quality best_quality" #define N_PROXIMITY_SOURCE_FLAG_VALUES 6 #define PROXIMITY_SOURCE_FLAG_VALUES "0, 1, 2, 3, 4, 5" #endif #define CLEAR_SKY_PROB_TYPE char #define CLEAR_SKY_PROB_NODATA -128 #define CLEAR_SKY_PROB_OFFSET 0.975 #define CLEAR_SKY_PROB_FACTOR 0.0002 #define CLEAR_SKY_PROB_UNITS "probability" #define CLEAR_SKY_PROB_MIN_VAL -127 #define CLEAR_SKY_PROB_MAX_VAL 127 #define CLEAR_SKY_PROB_LONG_NAME "probability of clear sky" #define CLEAR_SKY_PROB_NAME "probability_of_clear_sky" #define CLEAR_SKY_PROB_REFERENCE "IGNORE" #define CLEAR_SKY_PROB_REFERENCES "Merchant et al., Probabilistic physically based cloud screening of satellite infrared imagery from operational sea surface temperature retrieval, Q.J.R.Meteorol.Soc, 131, 2735-2755, 2005" #define CLEAR_SKY_PROB_COMMENT "Clear sky probability from Bayesian analysis; non-standard L2P field" #define CLEAR_SKY_PROB_DTIME "IGNORE" #define CLEAR_SKY_PROB_SOURCE "IGNORE" #define CLEAR_SKY_PROB_SOURCE_FLAG_MEANINGS "IGNORE" #define N_CLEAR_SKY_PROB_SOURCE_FLAG_VALUES 0 #define CLEAR_SKY_PROB_SOURCE_FLAG_VALUES "0" #define DIURNAL_EST_TYPE char #define DIURNAL_EST_NODATA -128 #define DIURNAL_EST_OFFSET 0. #define DIURNAL_EST_FACTOR 0.05 #define DIURNAL_EST_UNITS "Kelvin" #define DIURNAL_EST_MIN_VAL -127 #define DIURNAL_EST_MAX_VAL 127 #define DIURNAL_EST_LONG_NAME "diurnal warming estimate" #define DIURNAL_EST_NAME "diurnal_warming" #define DIURNAL_EST_REFERENCE "IGNORE" #define DIURNAL_EST_REFERENCES "Gentemann, C.L, C.J. Donlon, A. Stuart-Menteth, F.J. Wentz, Diurnal signals in satellite sea surface temperature measurements, GRL, 30(3), 1140-1143, 2003" #define DIURNAL_EST_COMMENT "Estimate of diurnal warming using Gentemann (2003) diurnal warming parameterization" #define DIURNAL_EST_DTIME "IGNORE" #define DIURNAL_EST_SOURCE "IGNORE" #define DIURNAL_EST_FLAG_MEANINGS "IGNORE" #define DIURNAL_EST_SOURCE_FLAG_VALUES 0 #define DIURNAL_EST_FLAG_VALUES "0" #ifdef GDS16 void writeNetCDF( int Year, int Month, int Day, int Hour, int Min, int Seconds, char *pSatelliteName, char *pNorthSouth, int spatial_res, char *inFile, char *pStartTime, char *pStopTime, char *pStartDate, char *pStopDate, float minLat, float maxLat, float minLong, float maxLong, int nele, int nlin, int inTime, float *pLongitude, float *pLatitude, short *pSST, short *pSST_DTimeArr, signed char *pSSES_Bias, signed char *pSSES_StdDev, signed char *pSSI, signed char *pSSI_DTimeArr, signed char *pSSISrc, signed char *pDT, signed char *pWindSpeedArr, signed char *pWindSpeed_DTimeArr, signed char *pWindSpeedSrc, signed char *pAerosolArr, signed char *pAerosol_DTimeArr, signed char *pAerosolSrc, signed char *pIceArr, signed char *pIceSrc, signed char *pZenithArr,signed char *pRejection, signed char *pConfidence, signed char *pProximity, signed char *pClearSkyProb, int startYear, int startMonth, int startDay, int startHours, int startMin, int startSecs, int stopYear, int stopMonth, int stopDay, int stopHours, int stopMin, int stopSecs, char *pSpatial_Resolution, float spatial_res_lat, float spatial_res_lon, char *pSensor, float *pIce_DTime, signed char *pADIArr, signed char *pADI_DTimeArr, signed char *pSolarZenith, signed char *pDiurnalEstimate ); #else void writeNetCDF( int Year, int Month, int Day, int Hour, int Min, int Seconds, char *pSatelliteName, char *pNorthSouth, int spatial_res, char *inFile, char *pStartTime, char *pStopTime, char *pStartDate, char *pStopDate, float minLat, float maxLat, float minLong, float maxLong, int nele, int nlin, int inTime, float *pLongitude, float *pLatitude, short *pSST, short *pSST_DTimeArr, signed char *pSSES_Bias, signed char *pSSES_StdDev, signed char *pSSI, signed char *pSSI_DTimeArr, signed char *pSSISrc, signed char *pDT, signed char *pWindSpeedArr, signed char *pWindSpeed_DTimeArr, signed char *pWindSpeedSrc, signed char *pAerosolArr, signed char *pAerosol_DTimeArr, signed char *pAerosolSrc, signed char *pIceArr, signed char *pIceSrc, signed char *pZenithArr, short *pRejection, signed char *pConfidence, signed char *pProximity, signed char *pClearSkyProb, int startYear, int startMonth, int startDay, int startHours, int startMin, int startSecs, int stopYear, int stopMonth, int stopDay, int stopHours, int stopMin, int stopSecs, char *pSpatial_Resolution, float spatial_res_lat, float spatial_res_lon, char *pSensor, float *pIce_DTime, signed char *pADIArr, signed char *pADI_DTimeArr, signed char *pSolarZenith, signed char *pDiurnalEstimate ); #endif