2014-04-17 18 views
7

Quale algoritmo posso utilizzare per produrre un cartogramma ponderato come quello riportato di seguito: http://www.brainpickings.org/index.php/2010/04/15/cartograms/?Algoritmo (e strumenti) per creare un cartogramma ponderato da uno shapefile?

È possibile generare un grafico di shapefile utilizzando il codice R, le librerie .NET e anche utilizzando PostGIS. Tuttavia non riesco a trovare i termini di ricerca da utilizzare per trovare un'implementazione dell'algoritmo utilizzato per produrre questi diagrammi di shapefile deformati. Non necessariamente cercando di tracciare solo mappe del mondo, quindi deve essere in grado di lavorare con uno shapefile arbitrario.

+0

Ho trovato alcune diapositive qui su argomenti simili ma nessuno parla di come ridimensionare uno shapefile "reale": http://i11www.iti.uni-karlsruhe.de/_media/teaching/winter2012/algo2/cartograms. pdf – JustinJDavies

+0

Sembra che ci sia un elenco di algoritmi del cartogramma su Wikipedia su http://en.wikipedia.org/wiki/Cartogram - Ho intenzione di leggerli e vedere se uno qualsiasi dei link utili mi porta ovunque – JustinJDavies

+0

arriva a una biblioteca ma sembra che questo libro possa contenere anche alcune informazioni: http://www.amazon.co.uk/Rediscovering-World-Transformations-Physical-Springer/dp/3642348475/ref=sr_1_cc_1?s=aps&ie= UTF8 & qid = 1397743745 & sr = 1-1-catcorr & keywords = 9783642348471 – JustinJDavies

risposta

4

Così come indicato nei commenti dell'OP, questi sono chiamati cartogrammi di area. L'implementazione lil più accurata che conosco è cartogram.js, che si basa sul magico D3 library. Se questa pagina dovesse mai andare giù, dovresti essere in grado di trovare una pagina simile con Google "Cartografia area D3", e se questo non ti porta da nessuna parte, allora la carta originale sull'argomento era Dougenik 1985.

3

La risposta D3.js, di Andy, è eccellente, tuttavia, solo per completezza, c'è un'implementazione qui, Cartogram algorithm, che proviene da un plugin Python per l'eccellente applicazione GIS open source, QGIS. La carta e l'algoritmo originali sono citati nei commenti. La directory completa del codice sorgente per il plugin QGIS è: https://code.google.com/p/ftools-qgis/source/browse/trunk/cartogram/?r=115

Mi rendo conto che hai richiesto C# e ci sono alcuni oggetti geometrici QGIS nel codice, ma il metodo TransformGeometry illustra come funziona l'algoritmo, QGIS legge gli shapefile, e nel caso in cui volessi eseguire qualsiasi altra elaborazione in stile GIS, QGIS sarebbe una buona opzione.

+0

Questo sembra davvero interessante. Avrò tempo per esaminare il prossimo fine settimana e probabilmente lo pubblicherò. Grazie Giovanni – JustinJDavies