ISCE_INSAR/contrib/stack/stripmapStack/unpackFrame_UAVSAR_HDF5_SLC.py

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)