Exemple #1
0
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
Exemple #2
0
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)

Exemple #5
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)
Exemple #6
0
# 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())