Estoy tratando de convertir una secuencia de comandos de python que se basa en arcpy en la que sólo se basa en el código abierto de los módulos, pero estoy teniendo algunos problemas. La mayor parte de mi procesamiento se encuentra en una herramienta " Arco "de Punto a Ráster." El objetivo es tomar un archivo csv con el lat/long coords y convertirlo en un mapa de bits, donde cada valor de la celda es el número de puntos contenidos dentro de la celda. Cuando soy capaz de utilizar arcpy, el flujo de trabajo se parece a esto:
Make XY event layer from csv of points -->
Use Event layer as input in Point To Raster tool, with cell assignment = COUNT, specifying spatial extent and cellsize -->
Mask out NoData values -->
Write output to .tif
Esto funciona muy bien, y me da el resultado de mi deseo, pero ahora tengo que escribir el mismo guión sin arcpy. He encontrado gdal herramientas que funcionan para todo, excepto el proceso principal: Punto a Ráster. ¿Sabes de algún gdal de utilidad (o de mala gana, alguna otra herramienta de código abierto) que podrían hacer lo del Arco de Punto a Ráster herramienta está haciendo? El 2 gdal herramientas que parecen que se podría lograr esto son:
gdal_grid (http://www.gdal.org/gdal_grid.html) -Esta herramienta no pretende hacer exactamente lo que yo quiero hacer, aunque lleva un conjunto de puntos (shapefile, o un archivo csv escrito como un VRT**) y convertirlo en una trama de cuadrícula. Puedo especificar el alcance de la gridd junto con su resolución, que es importante. También hay una opción para configurar la celda de la cuadrícula de valores basados en datos métricas, con 'contar' es uno de ellos. Sin embargo, en el recuento de métricas que afirma que "Un número de puntos de datos se encuentran en la cuadrícula de nodo elipse de búsqueda." ¿Qué significa el "grid nodo elipse de búsqueda"? No puedo asignar valores a partir de un número de puntos de datos que se encuentran en cada celda de la cuadrícula'? Hay una diferencia?
gdal_rasterize (http://www.gdal.org/gdal_rasterize.html) -Esto se ve un poco menos prometedor, o tal vez eso es sólo porque no me terminaba de entender. En resumen, la herramienta de "quemaduras geometrías vectoriales (puntos, líneas y polígonos) en la trama de la banda(s) de una imagen ráster", que suena como lo que necesito, aunque no hay ninguna palabra clave para especificar el conteo de puntos como el valor para ser quemado, así que no sé.
Un par de cosas más:
**Me iba a poner a prueba utilizando gdal_grid, pero no puede encontrar en cualquier lugar ¿cómo convertir un archivo CSV a una VRT en python. Sé que es posible por la mano, cada tutorial/página de ayuda que puedo encontrar, dice algo así como: "Dicen que usted tiene un archivo CSV con el lat/long, usted puede escribir una VRT archivo de CSV", a continuación, salta a la derecha en "he Aquí lo que el archivo VRT parece que para el CSV." Pero, ¿CÓMO puedo escribir en este archivo VRT, en python? Varias páginas de decir que para descargar un FW toolkit (o algo) para crear el CSV, pero necesito hacer esto dentro de python como estoy automatizar el proceso para cientos de CSVs. Traté de ogr2ogr pero tengo el error: "VRT controlador no es compatible con los datos de la fuente de la creación," así que estoy en una pérdida. Podría convertir csv a shapefile o algún otro OGR-formato reconocido, pero la VRT es atractivo porque el shapefile/lo que sea que se crearía sería muy, muy grande, y es probable que tome un tiempo para crear. Lo que me lleva a...
Cada csv tiene un obsenely gran cantidad de puntos: ~78 millones de euros. Así python/numpy ni siquiera leerlos sin que se caiga. Además, el raster resultante será global, con buena resolución (1km), por lo que un hack que manipula las coordenadas o bucles a través de los puntos de las células está fuera de la cuestión.
No estoy seguro de si debo poner mi CSV para VRT pregunta en un hilo separado, así que mis disculpas si esto es demasiado para una sola pregunta.
Pensamientos/sugerencias?