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.