示例#1
0
def transformgeoloc_1():

    # Setup 2x2 geolocation arrays in a memory dataset with lat/long values.

    drv = gdal.GetDriverByName('MEM')
    geoloc_ds = drv.Create('geoloc_1', 2, 2, 3, gdal.GDT_Float64)

    lon_array = gdalnumeric.asarray([[-117.0, -116.0], [-116.5, -115.5]])
    lat_array = gdalnumeric.asarray([[45.0, 45.5], [44.0, 44.5]])

    geoloc_ds.GetRasterBand(1).WriteArray(lon_array)
    geoloc_ds.GetRasterBand(2).WriteArray(lat_array)
    # Z left as default zero.

    # Create a wgs84 to utm transformer.

    wgs84_wkt = osr.GetUserInputAsWKT('WGS84')
    utm_wkt = osr.GetUserInputAsWKT('+proj=utm +zone=11 +datum=WGS84')

    ll_utm_transformer = gdal.Transformer(
        None, None, ['SRC_SRS=' + wgs84_wkt, 'DST_SRS=' + utm_wkt])

    # transform the geoloc dataset in place.
    status = ll_utm_transformer.TransformGeolocations(
        geoloc_ds.GetRasterBand(1), geoloc_ds.GetRasterBand(2),
        geoloc_ds.GetRasterBand(3))

    print status

    print geoloc_ds.ReadAsArray()

    return 'success'
示例#2
0
def transformgeoloc_1():

    try:
        from osgeo import gdalnumeric
        gdalnumeric.zeros
    except:
        try:
            import osgeo.gdal_array as gdalnumeric
        except ImportError:
            return 'skip'

    # Setup 2x2 geolocation arrays in a memory dataset with lat/long values.

    drv = gdal.GetDriverByName('MEM')
    geoloc_ds = drv.Create('geoloc_1',2,2,3,gdal.GDT_Float64)

    lon_array = gdalnumeric.asarray([[-117.0,-116.0],
                                     [-116.5, -115.5]])
    lat_array = gdalnumeric.asarray([[45.0, 45.5],
                                     [44.0, 44.5]])
    
    geoloc_ds.GetRasterBand(1).WriteArray(lon_array)
    geoloc_ds.GetRasterBand(2).WriteArray(lat_array)
    # Z left as default zero.

    # Create a wgs84 to utm transformer.
    
    wgs84_wkt = osr.GetUserInputAsWKT('WGS84')
    utm_wkt = osr.GetUserInputAsWKT('+proj=utm +zone=11 +datum=WGS84')
    
    ll_utm_transformer = gdal.Transformer(None, None,
                                          ['SRC_SRS='+wgs84_wkt,
                                           'DST_SRS='+utm_wkt] )

    # transform the geoloc dataset in place.
    status = ll_utm_transformer.TransformGeolocations(
        geoloc_ds.GetRasterBand(1),
        geoloc_ds.GetRasterBand(2),
        geoloc_ds.GetRasterBand(3))

    print(status)

    print(geoloc_ds.ReadAsArray())

    return 'success'