87 lines
1.9 KiB
Python
Executable File
87 lines
1.9 KiB
Python
Executable File
#!/usr/bin/env python3
|
|
|
|
import isce # noqa
|
|
from isceobj.Sensor import createSensor
|
|
import shelve
|
|
import argparse
|
|
import os
|
|
|
|
|
|
def cmdLineParse():
|
|
"""
|
|
Command line parser.
|
|
"""
|
|
|
|
parser = argparse.ArgumentParser(
|
|
description="Unpack UAVSAR SLC data and store metadata in pickle file."
|
|
)
|
|
parser.add_argument(
|
|
"-i",
|
|
"--input",
|
|
dest="h5_file",
|
|
required=True,
|
|
help="Input UAVSAR HDF5 file",
|
|
)
|
|
parser.add_argument(
|
|
"-o",
|
|
"--output",
|
|
dest="slc_dir",
|
|
required=True,
|
|
help="Output SLC directory",
|
|
)
|
|
parser.add_argument(
|
|
"-p",
|
|
"--polarization",
|
|
dest="polarization",
|
|
default="VV",
|
|
help="SLC polarization (default=%(default)s ) ",
|
|
)
|
|
parser.add_argument(
|
|
"-f",
|
|
"--frequency",
|
|
default="A",
|
|
choices=("A", "B"),
|
|
help="NISAR frequency choices (choices = %(choices)s , default=%(default)s )",
|
|
)
|
|
return parser.parse_args()
|
|
|
|
|
|
def unpack(h5_file, slc_dir, frequency="A", polarization="VV"):
|
|
"""
|
|
Unpack HDF5 to binary SLC file.
|
|
"""
|
|
|
|
obj = createSensor("UAVSAR_HDF5_SLC")
|
|
obj.configure()
|
|
obj.hdf5 = h5_file
|
|
obj.frequency = "frequency" + frequency
|
|
obj.polarization = polarization
|
|
|
|
if not os.path.isdir(slc_dir):
|
|
os.mkdir(slc_dir)
|
|
|
|
# obj.parse()
|
|
date = os.path.basename(slc_dir)
|
|
obj.output = os.path.join(slc_dir, date + ".slc")
|
|
|
|
obj.extractImage()
|
|
obj.frame.getImage().renderHdr()
|
|
|
|
obj.extractDoppler()
|
|
|
|
pickName = os.path.join(slc_dir, "data")
|
|
with shelve.open(pickName) as db:
|
|
db["frame"] = obj.frame
|
|
|
|
|
|
if __name__ == "__main__":
|
|
"""
|
|
Main driver.
|
|
"""
|
|
|
|
inps = cmdLineParse()
|
|
inps.slc_dir.rstrip("/")
|
|
inps.h5_file.rstrip("/")
|
|
|
|
unpack(inps.h5_file, inps.slc_dir, inps.frequency, inps.polarization)
|