2015-08-17 7 views
5

Ho bisogno di mappare alcuni punti dati su una mappa. Ho scaricato il modulo della mappa di base per Python per fare questo. Ottengo il seguente messaggio di errore ogni volta che tento di creare una mappa. Il codice che uso per questo è sotto. Come posso risolvere questo?La mappa di base causa l'interruzione di python

La versione di geos che sto utilizzando è la 3.4.2, la versione della mappa di base che sto usando è 1.0.7. La versione di Python che sto usando è 2.7. La versione di gdal che sto utilizzando è 1.11.2.

messaggio di errore:

codice
Assertion failed: (0), function query, file AbstractSTRtree.cpp, line 285. 
aborted 

:

from mpl_toolkits.basemap import Basemap 
import numpy as np 
import matplotlib.pyplot as plot 

def main(): 
    map = Basemap(projection = 'cyl', llcrnrlon= -100, llcrnrlat = -18, urcrnrlon =-80, urcrnrlat = 31) 
    map.drawcoastlines(linewidth = .01) 
    map.drawmapboundary(fill_color='aqua') 
    plot.show() 
main() 
+0

A parte il drawboundary, tutto funziona bene. Quindi penso che il pacchetto GEOS richieda altre relazioni genitore-figlio. Questo è anche l'errore di asserzione: \t assert (0); // child non supportato Tipo intercambiabile – Uvar

+0

Perdona la mia ignoranza, ma non so cosa significhi né so come risolverlo. Ho cercato su Google per cercare di capirlo. Gli unici risultati mi hanno portato ad un'altra serie di domande. Ho provato [una delle soluzioni] (https://github.com/Toblerity/Shapely/issues/288), ma quella non ha funzionato. @Uvar –

+0

@Uvar vuoi dire che ci sono più dipendenze di cui ha bisogno GEOS che non ho ancora scaricato? –

risposta

3

Questo bug mi stava facendo impazzire. Ci sono molte altre domande e siti Web SE che hanno un problema simile: 1, 2, 3, ma tutti raccomandano di importare mpl_toolkits.Basemapprima delshapely.geometry. Il problema è, questo è l'ordine di importazione che causa il problema per me stesso e @ K.Shores per. Se inverto l'ordine di importazione (prima formosa), non ho il problema.

Penso di aver trovato una soluzione più soddisfacente a questo numero here. Apparentemente c'è un conflitto tra la libreria Homebrew GEOS e quella che è in bundle con la ruota sagomata precompilata. Così, per risolvere il problema, fare:

$ pip uninstall shapely 
$ pip install --no-use-wheel shapely 
+3

L'approccio --no-use-wheel non ha funzionato per me, ma l'importazione di shapely prima ha fatto il trucco. Grazie. – python1981

Problemi correlati