Download ISCE manual and installation, JPL

Transcript
ISCE Documentation, Release 0.3
Finally, make_raw() concludes with renderHdr(), a method in Image.py that creates an xml file containing
important parameters of the raw image.
3.3.4 Focusing the Raw Image
The process of creating an SLC image begins with estimating an average Doppler coefficient fd for all of the polarized
images. It adds all four coefficients together and divides by four. ISSI.py then runs focus(), with the raw image
object and average Doppler coefficient as input arguments.
The first step in focus(), after getting parameters necessary for processing, calculates a value called peg point. Also
found in ISSI.py, calculatePegPoint() passes the frame, planet, and orbit and returns peg, height, and velocity
values. It also makes heavy use of both the interpolateOrbit() and xyz_to_llh() methods to calculate
points in both location and time. It also implements geo_hdg(), another method in Ellipsoid.py, that calculates the
spacecraft’s heading given its start and middle locations. An instance of the class Peg, in Peg.py, called peg, stores the
peg point information; calculatePegPoint() returns the Peg object as well as height and speed.
Interpolating and returning the spacecraft’s orbit comes next, beginning with the method createPulsetiming().
This method returns an instance of the class Pulsetiming, in Pulsetiming.py, called pt, which runs the method
pulsetiming(). pulsetiming() interpolates the spacecraft orbit and calculates a state vector for each line
of the image. It appends each successive state vector together in order to return the complete orbit of the spacecraft.
The program then converts this complete orbit to SCH coordinates with an instance of the class Orbit2sch, found in
Orbit2sch.py, called o2s. It wires a few input ports, sets the average height of the spacecraft, and then performs the
conversion with its method orbit2sch(). After setting parameters and allocating memory, orbit2sch() runs
orbit2sch.F, source code wrapped by the method orbit2sch_Py().
Back now in ISSI.py, focus() creates instances of the RawImage and SlcImage classes called rawImage and slcImage, respectively. While rawImage provides access to the raw image in memory, slcImage facilitates the creation of
the SLC image in memory. The program also creates an instance of the class Formslc, found in Formslc.py, called
focus, which contains the attributes and methods necessary to process raw data into an SLC image. With these objects
prepared, focus() wires input ports and sets variables necessary for generating the SLC image. Notice that, while
focus() has many lines, the vast majority of its commands simply get and set data calculated elsewhere; most of
focus() simply prepares for the actual SLC generation, executed in method called formslc().
formslc() finishes wiring the ported objects, allocates memory, sets parameters, and runs formslc_Py(), the
method that wraps formslc.f90. This Fortran code completely generates the SLC image, and after it finishes, another
wrapping function called getMocompPositionSize_Py() returns information about motion compensation performed in formslc.f90. formslc() concludes by setting a few more local variables, running getState(), which
returns more motion compensation parameters from the Fortran processing, deallocating memory, and creating an xml
header file for the new SLC image.
Once more in focus(), both rawImage and slcImage run their finalizeImage() methods. Now only one last
step remains for focus(), to convert the SLC image from writeable to readable. It accomplishes this by creating
another SlcImage object identical to that created earlier, but setting it as readable rather than writeable. Finalizing this
image object and defining local variables of image length and width conclude the conversion process from raw data to
SLC image.
3.3.5 Resampling the SLC Image
focuser() next runs the method resample(), in ISSI.py, on the VH and VV polarized SLC images. As usual,
resample() begins by getting and setting parameters and objects relevant to the resampling process. It creates two
SlcImage objects called slcImage, which refers to the SLC image currently in memory, and resampledSlcImage, which
facilitates the creation of a resampled SLC image file. Following this, it creates an instance of the class OffsetField, in
Offset.py, called offsetField, that represents a collection of offsets defining an offset field. The program then proceeds
to create an instance of the class Offset, also in Offset.py, called offset, with a constant 0.5 pixel shift in azimuth. This
offset adds to the offset field, ready for use later in the resampling process.
3.3. ISSI in Detail
39