[2759] | 1 | #ifndef ISDB_INCLUDE |
---|
| 2 | #define ISDB_INCLUDE |
---|
| 3 | |
---|
| 4 | #ifdef _NET_NEONS |
---|
| 5 | #include <nn_client.h> |
---|
| 6 | #endif /* _NET_NEONS */ |
---|
| 7 | |
---|
| 8 | /* max value from rand; HW/OS dependent */ |
---|
| 9 | #define MAX_RAND 2147483647. /* SUN */ |
---|
| 10 | /* #define MAX_RAND 32767. */ /* HP, Solaris */ |
---|
| 11 | |
---|
| 12 | /* Vers 4.2.1 was installed 10/01/97 on Kelvin */ |
---|
| 13 | #define NEONS_VRSN_MAJOR 4 /* major release version of NEONS software */ |
---|
| 14 | #define NEONS_VRSN_MINOR 2 /* minor release version of NEONS software */ |
---|
| 15 | #define NEONS_VRSN_MINOR2 1 /* (sub) minor release version of software */ |
---|
| 16 | /* (for bug fixes) */ |
---|
| 17 | |
---|
| 18 | #define BYTE_BIT_CNT 8 /* count of bits per byte */ |
---|
| 19 | #define WORD_BIT_CNT sizeof(long)*BYTE_BIT_CNT /* count of bits per word */ |
---|
| 20 | #define WORD_BYTE_CNT 4 /* count of bytes per word */ |
---|
| 21 | |
---|
| 22 | #define OPN_RD 1 /* open database for read only */ |
---|
| 23 | #define OPN_WR_RD 2 /* open database for write+read */ |
---|
| 24 | |
---|
| 25 | #define MAX_FILE_CNT 15 /* maximum count of open files */ |
---|
| 26 | |
---|
| 27 | #define ISDB_MODE 0666 /* mode for image files placed into db */ |
---|
| 28 | #define LOCK_MODE 0200 /* mode for locking files while writing */ |
---|
| 29 | #define INGEST_OWN "dba" /* owner of image files before loaded in db */ |
---|
| 30 | #define INGEST_MODE 0644 /* mode for ingest files before loaded in db */ |
---|
| 31 | |
---|
| 32 | |
---|
| 33 | #define CLNDR_HOUR 0 /* calendar time, units = hours */ |
---|
| 34 | #define CLIMO_DAY 1 /* climatology time, units = day in year */ |
---|
| 35 | #define CLIMO_WEEK 2 /* climatology time, units = week in year */ |
---|
| 36 | #define CLIMO_MONTH 3 /* climatology time, units = month in year */ |
---|
| 37 | #define CLIMO_SEASON 4 /* climatology time, units = season in year */ |
---|
| 38 | |
---|
| 39 | typedef struct { /* date structure */ |
---|
| 40 | int year; /* year number since 0 BC */ |
---|
| 41 | int month; /* month number in year */ |
---|
| 42 | int day; /* day number in month */ |
---|
| 43 | int type; /* time coordinate type, default time type */ |
---|
| 44 | /* is calendar time */ |
---|
| 45 | } DATE; |
---|
| 46 | |
---|
| 47 | typedef struct { /* info from table as_band */ |
---|
| 48 | long chan_num; /* channel number within sensor */ |
---|
| 49 | char band_name[31]; /* name of band */ |
---|
| 50 | long bit_cnt; /* count of bits in pixel */ |
---|
| 51 | float scl_fctr; /* scaling factor */ |
---|
| 52 | float reference; /* reference value */ |
---|
| 53 | char unit_name[31]; /* name of physical units */ |
---|
| 54 | } AS_BAND; |
---|
| 55 | |
---|
| 56 | typedef struct { /* info from tables grid_reg_geom/as_reg_im */ |
---|
| 57 | char prjn_name[21]; /* projection name */ |
---|
| 58 | char stor_dsc[21]; /* (+x in +y)/(+x in -y)/(-y in +x)/etc */ |
---|
| 59 | long nx; /* count of columns */ |
---|
| 60 | long ny; /* count of rows */ |
---|
| 61 | double lat; /* lat of origin in degrees */ |
---|
| 62 | double lon; /* lon of origin in degrees */ |
---|
| 63 | #ifdef OLD_REG_GEOM |
---|
| 64 | long orig_ix; /* column # for origin, left column is 1 */ |
---|
| 65 | long orig_iy; /* row # for origin; top row is 1 */ |
---|
| 66 | float x_int_dis; /* distance interval between columns in km */ |
---|
| 67 | float y_int_dis; /* distance interval between rows in km */ |
---|
| 68 | float parm_1; /* geom parm 1, depends on projection */ |
---|
| 69 | float parm_2; /* geom parm 2, depends on projection */ |
---|
| 70 | float parm_3; /* geom parm 3, depends on projection */ |
---|
| 71 | #else |
---|
| 72 | double orig_ix; /* column # for origin, left column is 1 */ |
---|
| 73 | double orig_iy; /* row # for origin; top row is 1 */ |
---|
| 74 | double x_int_dis; /* distance interval between columns in km */ |
---|
| 75 | double y_int_dis; /* distance interval between rows in km */ |
---|
| 76 | double parm_1; /* geom parm 1, depends on projection */ |
---|
| 77 | double parm_2; /* geom parm 2, depends on projection */ |
---|
| 78 | double parm_3; /* geom parm 3, depends on projection */ |
---|
| 79 | #endif /* OLD_REG_GEOM */ |
---|
| 80 | } REG_GEOM; |
---|
| 81 | |
---|
| 82 | typedef struct { /* info from table as_sat_im */ |
---|
| 83 | long bgn_lin_num; /* beginning line number in orbit or pass */ |
---|
| 84 | long bgn_smp_num; /* beginning sample number in scan line */ |
---|
| 85 | long lin_int; /* lin interval relative to sensor scan mode */ |
---|
| 86 | long smp_int; /* smp interval relative to sensor scan mode */ |
---|
| 87 | float roll_ang; /* satellite roll angle in degrees */ |
---|
| 88 | float pch_ang; /* satellite pitch angle in degrees */ |
---|
| 89 | float yaw_ang; /* satellite yaw angle in degrees */ |
---|
| 90 | } SAT_GEOM; |
---|
| 91 | |
---|
| 92 | typedef struct { /* info from table grid_spct_geom */ |
---|
| 93 | char stor_dsc[21]; /* (+x in +y)/(+x in -y)/(-y in +x)/etc */ |
---|
| 94 | char trnc_type[21]; /* spectral truncation type (triangular/etc) */ |
---|
| 95 | long coef_cnt; /* count of complex coefficients used */ |
---|
| 96 | long max_lat_wav_num; /* max latitudinal wavenumber (M in GRIB) */ |
---|
| 97 | long max_lon_wav_num_1; /* max longitudinal wavenumber 1 (J in GRIB) */ |
---|
| 98 | long max_lon_wav_num_2; /* max longitudinal wavenumber 2 (K in GRIB) */ |
---|
| 99 | } SPCT_GEOM; |
---|
| 100 | |
---|
| 101 | typedef struct { /* info from table sat_oe */ |
---|
| 102 | char seq_name[21]; /* orb-elem sequence name */ |
---|
| 103 | DATE date; /* date for orbital elements */ |
---|
| 104 | double hour; /* hour of day for orbital elements */ |
---|
| 105 | double parm_1; /* orb-elem parm 1 value */ |
---|
| 106 | double parm_2; /* orb-elem parm 2 value */ |
---|
| 107 | double parm_3; /* orb-elem parm 3 value */ |
---|
| 108 | double parm_4; /* orb-elem parm 4 value */ |
---|
| 109 | double parm_5; /* orb-elem parm 5 value */ |
---|
| 110 | double parm_6; /* orb-elem parm 6 value */ |
---|
| 111 | double parm_7; /* orb-elem parm 7 value */ |
---|
| 112 | } ORB_ELEM; |
---|
| 113 | |
---|
| 114 | typedef struct { /* bit-map structure */ |
---|
| 115 | short lin_cnt; /* count of lines in bitmap */ |
---|
| 116 | short smp_cnt; /* count of samples per line in bitmap */ |
---|
| 117 | short pad_bit_cnt; /* count of bits for padding lines in bitmap */ |
---|
| 118 | short ofst_byte_cnt; /* byte offset into bitmap array where actual |
---|
| 119 | bitmap data begins */ |
---|
| 120 | unsigned char *bmap; /* unsigned char array containing bitmap */ |
---|
| 121 | } BITMAP; |
---|
| 122 | |
---|
| 123 | #endif /* ISDB_INCLUDE */ |
---|