es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Alguien puede indicar cómo georreferenciar una imagen tiff cuando las coordenadas están dadas en un archivo json?

Quiero realizar la clasificación de cultivos utilizando métodos de aprendizaje profundo. He recopilado el conjunto de datos de tipos de cultivos en Ghana. Mi conjunto de datos contiene imágenes TIFF y archivos JSON. El archivo TIFF no está georeferenciado. El archivo JSON se ve así:

{"type": "FeatureCollection", "features": [
{"type": "Feature", "geometry": {"type": "Polygon","coordinates": [[[-2,8],[1,8],[1,11],[-2,11],[-2,8]]]}, "properties": {"anon:size":3,"anon:warning":"WARNING: The item geometries in this collection have been anonymized such that they exist somewhere within the bounding box listed within that item's geometry.","datetime":"2017-01-02T00:00:00","id":"su_african_crops_ghana_source_planet_000000_2017_01_02"}}]}

¿Cómo puedo hacer que la imagen TIFF esté georreferenciada utilizando este archivo JSON para mi proyecto de aprendizaje profundo? Quiero realizar una clasificación píxel a píxel. ¿Puede alguien ayudarme a georreferenciar la imagen TIFF? ¿Hay alguna forma de hacerlo en Python? Muchas gracias.

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para hacer la imagen en formato tiff georreferenciada usando el archivo json proporcionado, se puede utilizar la biblioteca gdal en Python. Estos son los pasos que se pueden seguir:

    1. Cargar el archivo json utilizando la biblioteca json de Python.
    import json
    
    with open('ruta_al_archivo_json.json', 'r') as f:
        data = json.load(f)
    
    1. Extraer las coordenadas de los datos json.
    coordinates = data['features'][0]['geometry']['coordinates'][0]
    
    1. Crear un objeto de referencia espacial utilizando las coordenadas extraídas.
    from osgeo import osr
    
    srs = osr.SpatialReference()
    srs.SetWellKnownGeogCS('WGS84')
    srs.SetUTM(30, True)
    srs.SetWellKnownGeogCS('NAD27')
    srs.SetProjection('UTM')
    srs.SetCoordinateSystemParameters(0, 0, 500000, 0, 0.9996, 300000)
    srs.SetLinearUnits('m', 1)
    
    1. Cargar el archivo tiff utilizando gdal.
    from osgeo import gdal
    
    ruta_tiff = 'ruta_al_archivo_tiff.tif'
    tiff_dataset = gdal.Open(ruta_tiff, gdal.GA_Update)
    
    1. Establecer el geotransform y la proyección del conjunto de datos tiff utilizando el objeto de referencia espacial creado anteriormente y escribirlo en el conjunto de datos.
    geotransform = [coordinates[0][0], 30.0, 0, coordinates[0][1], 0, -30.0]
    tiff_dataset.SetGeotransform(geotransform)
    tiff_dataset.SetProjection(srs.ExportToWkt())
    

    Ahora, su archivo en formato tiff debe estar georreferenciado y listo para la clasificación pixel por pixel usando métodos de aprendizaje profundo.

Comments are closed.