HARDWARE AND SOFTWARE CONSIDERATIONS FOR USE OF NOAA POLAR ORBITER DATASETS

by
JohnNordlie

Submitted in partial fulfillment of the requirements for the Master of Science degree in Space Studies and the Graduate School of the University of North Dakota.

Advisor: Grady Blount II

December 1992

ABSTRACT
The NOAA Polar Orbiting Environmental Satellite system provides remote sensing data in five wavelength bands and spatial resolutions down to 1.1 Km pixels. These data sets can be used for a variety of remote sensing applications, and can be captured with relatively inexpensive groundstation and image processing equipment. Three computer programs are included to assist in processing the data.

INTRODUCTION
The National Oceanographic and Atmospheric Administration (NOAA) is responsible for operating United States civilian weather satellite systems. The two major systems operational at this time are the Geostationary Operational Environmental Satellite (GOES) system, and the Polar Orbiting Environmental Satellite (POES) system. The GOES satellites orbit in geosynchronous orbit 22,300 miles above the earth and image nearly half the planet continuously. The POES satellites are in 450 mile high, nearly polar orbits. Each POES satellite makes 14 orbits per day, and can image the entire earth in about 24 hours. This paper will deal exclusively with the POES system.

SENSORS
The main sensor package on the POES satellite systems is the Advanced Very High Resolution Radiometer (AVHRR). This sensor gathers data in five different wavelength regions:

	Band #			Wavelength in micrometers
  	1				0.55 to 0.68
	2				0.73 to 1.10
	3				3.55 to 3.93
	4				10.50 to 11.50
	5				11.50 to 12.50

The bands range from visible red light out to thermal infrared radiation. This data is broadcast continually from each satellite as High Resolution Picture Transmission (HRPT) data in the microwave frequency range, and can be received on the ground during the times that the satellite is visible above the horizon. The maximum pass time is usually 15.5 minutes. The data can also be stored on board the satellite on tape recorders for later playback.

DATASETS
Datasets generated by the AVHRR have a minimum resolution of 1.1 Km by 1.1 Km per pixel, and are 2048 samples wide. The image swath is approximately 2700 Km wide (the pixels at the edges of the scan are more than 1.1 Km wide, thus accounting for the discrepancy). The number of lines per file vary, and depend on the amount of time the satellite is visible from the ground station. The sensor transmits data in a 10 bit format, but the storage of the data can be done in various ways. Some receiving stations store the full 10 bit data frames, plus satellite ephemeris data, time of the pass, and various other parameters. This can generate data which is more difficult to write a computer program to read, and takes up much space on storage media. For example: a file with 10,000,000 pixels would occupy 12,500,000 bytes of storage space, not counting file header and any other information stored in the file. Since computers deal in 8 bit bytes, this data would have to be mathematically resampled after reading from a storage device, and this adds complexity to the program needed. A simpler format is to save the data as 8 bit binary data files. These files store the data in a band-interleaved format (as it comes from the satellite), and helps conserve storage space, as well as making it easier for programmers to write code to process the data. The data is interleaved because of the scanning process on the satellite. For any position of the scan mirror in the AVHRR sensor during a scan, five data values (one for each band) are collected from the radiometers. These five values are transmitted in order (1-5) by the satellite while the scan mirror moves to the next position. This process is used since it requires no on-board storage of the data. The maximum size of the 8 bit format files is in the range of 50 to 60 Megabytes. The relatively small size of the datasets make them ideal for processing on personal computers.

The AVHRR data is subsampled into 4 Km by 4 Km pixels for transmission as Automatic Picture Transmission (APT) data. This data is broadcast on a frequency in the 137 MHz weather satellite band. Datasets from APT transmission are generally quite small, usually less than 2 Megabytes in size, due to the lower number of pixels needed to cover the same surface area. APT data is useful for projects that do not require very high resolution, and computing equipment requirements for processing and storing these datasets are less demanding than AVHRR.

USES OF REMOTE SENSING DATA
There are a great many ways remote sensing data can be used, the methodology depends on the project. For such studies as searching for forest fires or large geologic features, little processing of the data is needed. Other projects, such as the determination of the health of plants, can be accomplished by applying mathematical formulae to the data to yield a derived image. The mapping of an area by soil type is another example of this application. For many years, data for projects such as these came from the Landsat series of remote sensing satellites. Operated by the U.S.government, Landsat satellites use their Thematic Mapper (TM) sensor to generate multispectral images of areas with a spatial resolution down to 30m. The spectral resolution of the TM sensor is also superior to the AVHRR, ranging from blue in the visible spectrum out to the thermal infrared in seven separate bands. The main drawbacks to the TM datasets is their cost: ~$5000 per scene. The size of a dataset (~300 Megabytes) can also pose a problem for researchers who don't have the necessary computing equipment. For studies that do not require the high spectral and spatial resolution of the TM sensor, AVHRR datasets offer a low cost alternative.

OPERATIONAL REQUIREMENTS
To receive data from either HRPT or APT transmissions a groundstation is required. A block diagram of minimum ground station components is presented in figure 1. The antenna system for the APT system consists of an omnidirectional, circularly polarized beam fixed pointing straight up, while the HRPT system uses a microwave dish that is pointed at the satellite by a computer controlled dual axis mount. A preamplifier is necessary in both cases because the signal transmitted by the satellites is weak (about 4 Watts). The receiver then converts the radio signals into audio tones, and the decoder converts the audio tones, which represent analog voltage levels generated by the sensors, into digital data a computer can understand. The computer captures the data on to storage media (such as a disk or tape) for later processing. In either system it is necessary to have an orbital prediction program and current orbital elements for the satellites to determine when they will be visible from the groundstation. In the APT system, the predictions tell the operator when to have the system active, and any slight error is generally not important. The HRPT system, however, uses the predictions to aim the dish antenna at the satellite as it passes overhead, so accuracy in the predictions and proper timing is essential. The HRPT system requires more sophisticated equipment, and is higher in cost than the APT system.



SUMMARY
The reception of HRPT or APT data from the POES satellites is a relatively inexpensive proposition. The data gathered is useful in many remote sensing applications, and much cheaper than commercially available datasets such as Landsat. The hardware and software required are modest when compared to a groundstation for Landsat.

BIBLIOGRAPHY
Sabins, F.F. Jr., Remote Sensing Principles and Interpretation.
	W.H. Freeman and Company, NewYork. 449p. 1987.

Loebl, T., View From Low Orbit. Imaging Publications,
	Massachusetts. 124p. 1991.

U.S. Dept. of Commerce, NOAA Polar Orbiter Data Users Guide.
	U.S. Dept. of Commerce, Washington, D.C. 200p. 1986.

Colwell, R.N., Manual of Remote Sensing. Second Ed.
	American Society of Photogrammetry. 1232p. 1983.


APPENDIX
In this appendix are three computer programs for processing AVHRR datasets saved in the 8 bit band interleaved format. All three programs assume the standard number of samples per line, 2048, which is multiplied by the five bands to yield 10240. Since all data files will be an integer multiple of 10240 bytes in length, this value was chosen for the buffer size. All three programs take command inputs as arguments on the command line, and provide the command input format if they are run with no arguments.

BANDOUT is a program that will read in an AVHRR data file and generate an output file containing only pixels from a specified band. The format is:
	BANDOUT < band# > < inputfile > < outputfile >
where < band# > is the number of the band (1-5) from which the pixels shall be taken. < inputfile > is the name of the band interleaved data file, and < outputfile > is the file that will contain the output data.

SLICE is a program to copy a range of lines from the input file into an output file. This is useful to eliminate noisy or useless data in a file, or to take only the data of interest from a dataset. The format is:
	SLICE < SL > < NL > < inputfile > < outputfile >
where < SL > is the starting line, or first line to copy to the output file. < NL > is the number of lines to copy, including the starting line. < inputfile > is the input filename, and < outputfile > is the name of the output file.

FLIP is a program that will invert a data file. When a file is captured, the first line of the file is the first data line captured, and so on. If the data was captured when the satellite was making an ascending (south to north) pass, the image will appear upsidedown when viewed by an image display program. This is annoying, and can be avoided by reversing the order of the scan lines in the data file. FLIP does this by reading the input file in reverse order, and copying the data to the output file. The new output file can now be displayed normally, with north being at the top of the image. The format is:
	FLIP < inputfile > < outputfile >
where < inputfile > is the name of the input file, and < outputfile > is the name of the outputfile.

The following pages list the source code for all three programs, which were written in ANSI C and compiled using the Borland C++ compiler version 2.0.

Please Note: These programs were written to ingest and manipulate 8-bit, band interleaved AVHRR datasets as captured by a now obsolete version of Quorum Communications' QTrack software. They will not work with most modern AVHRR 10-bit dataset formats.

#include
#include
#include

/**
 **
 **        Program Band_Out will seperate a band from an 8bit  HRPT file
 **            John Nordlie 12/7/92
 **
 **/

int main(int argc,char *argv[])

{
	int band;  /* the band number, 1-5 */
	long i; /* loop counter */
	char in_buffer[10240], out_buffer[2048]; /* each line is 2048 samples*/
						/* long. 10240 is 2048*/
						/* samples times 5 bands.*/
	char infname[35], outfname[35];
	FILE *infile, *outfile;

/*Input data file names.*/

if (argc!=4){ /* improper number of arguments*/
	printf("\nUsage: BANDOUT   \n");
	exit(0);
}

else{ /*arguments ok, parse into variables*/
	band=atoi(argv[1]);
	strcpy(infname,argv[2]);
	strcpy(outfname,argv[3]);
}

/*Open files*/

if((infile=fopen(infname,"rb"))==NULL){
	printf("\n\nError opening file %s\n\n",infname);
	exit(0);
}

if((outfile=fopen(outfname,"wb"))==NULL){
	printf("\n\nError opening file %s\n\n",outfname);
	exit(0);
}

/*transfer data*/

fread(in_buffer, 10240, 1, infile);
while(!feof(infile)){
	for(i=0; i<2048; i++){ /*copy one line of data*/
		out_buffer[i]=in_buffer[((5*i)+band-1)];
	}/*end for*/
	if(fwrite(out_buffer,2048,1,outfile)==0){  /*write data*/
		printf("\nError writing data!\n");   /*and check for*/
		exit(0);                             /*errors.*/
	}
	fread(in_buffer, 10240, 1, infile);
}/*endwhile*/

/*closefiles*/

fclose(infile);
fclose(outfile);

}/*end BANDOUT*/


==========================================================================================


#include
#include
#include

/**
 **
 **     Program Slice will take a selected number of lines from an 8 bit HRPT file.
 **          John Nordlie 12/7/92
 **
 **/

int main(int argc,char *argv[])

{
	int SL, NL;                   /* SL=startingline,NL=numberoflines*/
	long i;
	char in_buffer[10240];        /* each line is 2048 samples * 5bands */
	char infname[35], outfname[35];
	FILE *infile, *outfile;

/*Input data and file names.*/

if(argc!=5){                        /*test for proper number of arguments*/
	printf("\nUsage: SLICE    \n");
	exit(0);
}
else{                               /*arguments ok, parse them into variables*/
	SL=atoi(argv[1]);
	NL=atoi(argv[2]);
	strcpy(infname,argv[3]);
	strcpy(outfname,argv[4]);
}

/*Open files*/

if((infile=fopen(infname,"rb"))==NULL){
	printf("\n\nError opening file %s\n\n",infname);
	exit(0);
}

if((outfile=fopen(outfname,"wb"))==NULL){
	printf("\n\nError opening file %s\n\n",outfname);
	exit(0);
}


/*transfer data*/

for(i=1; i
#include
#include

/**
 **
 **      Program Flip will invert an 8 bit HRPT file.
 **          John Nordlie 12/7/92
 **
 **/

long filesize(FILE *stream);

int main(int argc, char *argv[])

{
	long i, j, NL;
	char in_buffer[10240];     /*each line of data is 2048 samples * 5 bands*/
	char infname[35], outfname[35];
	FILE *infile, *outfile;

/*Input data file names.*/

if(argc!=3){                       /*check for proper number of arguments*/
	printf("\nUsage: FLIP  \n");
	exit(0);
}
else{                              /*arguments ok, parse into variables*/
	strcpy(infname,argv[1]);
	strcpy(outfname,argv[2]);
}


/*Open files*/

if((infile=fopen(infname,"rb"))==NULL){
	printf("\n\nError opening file %s\n\n",infname);
	exit(0);
}

if((outfile=fopen(outfname,"wb"))==NULL){
	printf("\n\nError opening file %s\n\n",outfname);
	exit(0);
}

/*transfer data*/

NL=filesize(infile)/10240;          /* find the number of lines in the file.*/

for(j=NL; j>0; j--){                /* count back ward from end of file*/
	rewind(infile);             /* reset curent pointer to begining of file*/
	for(i=0; i




Back to Papers and Publications.