import numpy as np import sys import os from pysix import six_sicd from coda import sio_lite if __name__ == '__main__': if len(sys.argv) >= 3: # Set up nitfPath = os.path.abspath(sys.argv[1]) sioPath = nitfPath.rstrip(".nitf") + ".sio" schemaPath = os.path.abspath(sys.argv[2]) else: print "Usage: python " + sys.argv[0] + " <NITF path> <Schema path>" sys.exit(0) widebandData, complexData = six_sicd.read(nitfPath) sio_lite.write(widebandData, sioPath) print "Wrote " + sioPath
import sys import os from pysix import six_base, six_sicd from coda import sio_lite if __name__ == '__main__': if len(sys.argv) >= 3: # Set up nitfPath = os.path.abspath(sys.argv[1]) sioPath = nitfPath.rstrip(".nitf") + ".sio" schemaPath = os.path.abspath(sys.argv[2]) else: print("Usage: python " + sys.argv[0] + " <NITF path> <Schema path> [startRow numRows startCol numCols]") sys.exit(0) schemaPaths = six_base.VectorString() schemaPaths.push_back(schemaPath) if len(sys.argv) == 7: sfl = int(sys.argv[3]) snl = int(sys.argv[4]) sfe = int(sys.argv[5]) sne = int(sys.argv[6]) widebandData, complexData = six_sicd.readRegion(nitfPath, sfl, snl, sfe, sne, schemaPaths) else: widebandData, complexData = six_sicd.read(nitfPath, schemaPaths) sio_lite.write(widebandData, sioPath) print("Wrote " + sioPath)
parser.add_argument('--polyOrderX', default=3, type=int, help='Order for x-direction polynomials') parser.add_argument('--polyOrderY', default=3, type=int, help='Order for y-direction polynomials') parser.add_argument('input', help='Input SICD') parser.add_argument('output', help='Output SIO') args = parser.parse_args() if not os.path.isfile(args.input): print('{} is not a file'.format(args.input)) sys.exit(1) if args.schema and not os.path.exists(args.schema): print('{} does not exist'.format(args.schema)) sys.exit(1) schemaPaths = getSchemaPaths(args.schema) widebandData, complexData = six_sicd.read(args.input, schemaPaths) plane = getAreaPlane(complexData) toSlantRow, toSlantCol = findOutputToSlantPolynomials( complexData, args.polyOrderX, args.polyOrderY) dims = RowColSizeT(plane.xDirection.elements, plane.yDirection.elements) outputBuffer = projectToOutput(widebandData, dims, toSlantRow, toSlantCol) sio_lite.write(outputBuffer, args.output, numpy.float32) sys.exit(0)
location = os.path.split(os.path.realpath(__file__))[0] testPath = os.path.join(location, 'test_create_sicd_xml.py') subprocess.call(['python', testPath, '--includeNITF']) return os.path.join(os.getcwd(), 'test_create_sicd.nitf') def clean(pathname): basename = os.path.splitext(pathname) for extension in ['.nitf', '.xml']: os.remove(basename + extension) os.remove(basename + '_rt' + extension) if __name__ == '__main__': pathname = createNITF() assert os.path.exists(pathname) expectedArray, expectedData = read(pathname) numRows, numCols = expectedArray.shape actualArray, actualData = readRegion(pathname, 0, numRows, 0, numCols) try: assert (actualArray == expectedArray).all() assert actualData == expectedData except AssertionError: print('Behavior of readRegion() and read() differ. Test failed') sys.exit(1) except Exception as e: sys.exit(repr(e)) print('Test passed') sys.exit(0)
from pysix import six_base, six_sicd from coda import sio_lite, coda_types if __name__ == '__main__': if len(sys.argv) >= 3: # Set up nitfPath = os.path.abspath(sys.argv[1]) sioPath = nitfPath.rstrip(".nitf") + ".sio" schemaPath = os.path.abspath(sys.argv[2]) else: print("Usage: python " + sys.argv[0] + " <NITF path> <Schema path> [startRow numRows startCol numCols]") sys.exit(0) schemaPaths = coda_types.VectorString() schemaPaths.push_back(schemaPath) if len(sys.argv) == 7: sfl = int(sys.argv[3]) snl = int(sys.argv[4]) sfe = int(sys.argv[5]) sne = int(sys.argv[6]) widebandData, complexData = six_sicd.readRegion( nitfPath, sfl, snl, sfe, sne, schemaPaths) else: widebandData, complexData = six_sicd.read(nitfPath, schemaPaths) sio_lite.write(widebandData, sioPath) print("Wrote " + sioPath)
# Parse the command line if len(sys.argv) != 2: sys.exit('Usage ' + sys.argv[0] + ' <sicd path name>') sicd_path_name = sys.argv[1] base_name = os.path.basename(sicd_path_name) file_name = os.path.splitext(base_name)[0] ending = os.path.splitext(base_name)[1] output_name = os.path.join('.', file_name + "_cropped" + ending) # To crop a sicd saved on disk and write it out # to a new sicd on disk, use cropSICD six_sicd.cropSICD(sicd_path_name, coda_types.VectorString(), coda_types.RowColSizeT(0, 0), coda_types.RowColSizeT(200, 200), output_name) # If the sicd metadata is already in memory cropMetaData # can be used data, meta_data = six_sicd.read(sicd_path_name) new_meta_data = six_sicd.cropMetaData(meta_data, coda_types.RowColSizeT(0, 0), coda_types.RowColSizeT(200, 200)) old_lr = meta_data.geoData.imageCorners.lowerRight new_lr = new_meta_data.geoData.imageCorners.lowerRight print("Old lower Right Corner lat/lon", old_lr.getLat(), old_lr.getLon()) print("New lower Right Corner lat/lon", new_lr.getLat(), new_lr.getLon())