Ho migliaia di poligoni memorizzati in un formato tabella (date le loro 4 coordinate d'angolo) che rappresentano piccole regioni della terra. Inoltre, ciascun poligono ha un valore di dati. Il file è per esempio come questo:binning dei dati: poligoni irregolari su mesh normale
lat1, lat2, lat3, lat4, lon1, lon2, lon3, lon4, data
57.27, 57.72, 57.68, 58.1, 151.58, 152.06, 150.27, 150.72, 13.45
56.96, 57.41, 57.36, 57.79, 151.24, 151.72, 149.95, 150.39, 56.24
57.33, 57.75, 57.69, 58.1, 150.06, 150.51, 148.82, 149.23, 24.52
56.65, 57.09, 57.05, 57.47, 150.91, 151.38, 149.63, 150.06, 38.24
57.01, 57.44, 57.38, 57.78, 149.74, 150.18, 148.5, 148.91, 84.25
...
Molti dei poligoni si intersecano o si sovrappongono. Ora vorrei creare una matrice * m che vada da -90 ° a 90 ° di latitudine e da -180 ° a 180 ° di longitudine in passi di, ad esempio, 0,25 ° x0,25 ° per memorizzare i dati medi (ponderati per l'area) valore di tutti i poligoni che rientrano in ciascun pixel.
Quindi, un pixel nella mesh normale deve ottenere il valore medio di uno o più poligoni (o nessuno se nessun poligono si sovrappone al pixel). Ogni poligono dovrebbe contribuire a questo valore medio in base alla sua frazione di area all'interno di questo pixel.
Fondamentalmente la maglia regolare ei poligoni simile a questa:
Se si guarda al pixel 2, si vede che due poligoni sono dentro questo pixel. Quindi, devo prendere il valore medio dei dati di entrambi i poligoni considerando le loro frazioni di area. Il risultato dovrebbe quindi essere memorizzato nel normale pixel mesh.
Ho guardato intorno al web e non ho trovato nessun approccio soddisfacente fino ad ora. Dal momento che sto usando Python/Numpy per il lavoro quotidiano mi piacerebbe attenervisi. È possibile? Il pacchetto shapely sembra promettente, ma non so da dove cominciare ... Portare tutto su un database PostGG è un enorme sforzo e immagino ci saranno molti ostacoli sulla mia strada.
non so molto circa poligono di ritaglio , ma hai cercato su Google? per esempio. http://pypi.python.org/pypi/Polygon/2.0.4 – katrielalex
In realtà, probabilmente è eccessivo. I poligoni sembrano convessi, quindi la loro intersezione è più facile da calcolare. Vedi per es. http://content.gpwiki.org/index.php/Polygon_Collision – katrielalex
Non è molto chiaro cosa vuoi fare la media in ogni pixel ... Hai un valore associato a ciascun poligono?I poligoni calcolano la media del peso in base alla loro area totale o all'area del pixel che coprono? Mi sembra che il tuo problema sia abbastanza semplice da gestire in modo efficiente in numpy senza pacchetti aggiuntivi. Si prega di fornire i dettagli mancanti. – Jaime