VS-код не отображает gpd.GeoSeries (). Plot () - PullRequest
0 голосов
/ 31 октября 2019

Привет. Я пытаюсь нанести Geo-данные, используя VS-код с геопандами.

Мой код выглядит следующим образом:

import geopandas as gpd
import geopandas.geoseries
from shapely.geometry import Point
import random
import matplotlib as plt

#offset a point randomly
def point_offset(point):
    x_alt = point.x
    y_alt = point.y
    x_neu = x_alt + random.randrange(-100,100,1)
    y_neu = y_alt + random.randrange(-100,100,1)
    punkt_neu = Point(x_neu,y_neu)
    return punkt_neu

#define point and calculate new point
sternwarte = Point(2600000,1200000)
sternwarte_neu = point_offset(sternwarte)
print(sternwarte_neu)

#why do these two lines don't work??
ax = gpd.GeoSeries([point_offset(sternwarte) for x in range(1,1000)]).plot()
gpd.GeoSeries(sternwarte).plot(ax = ax, color = "red")

Выходная точка выглядит следующим образом:

PS C:\Users\giebe\projects\GIS\Coding_2> cd 'c:\Users\giebe\projects\GIS\Coding_2'; ${env:PYTHONIOENCODING}='UTF-8'; ${env:PYTHONUNBUFFERED}='1'; & 'C:\Users\giebe\Anaconda\envs\buerktim\python.exe' 'c:\Users\giebe\.vscode\extensions\ms-python.python-2019.10.44104\pythonFiles\ptvsd_launcher.py' '--default' '--client' '--host' 'localhost' '--port' '54586' 'c:\Users\giebe\projects\GIS\Coding_2\Monte_Carlo.py'
POINT (2600075 1200034)
PS C:\Users\giebe\projects\GIS\Coding_2>

Кажется, что программа работает правильно, но последние две строки не выполняются (график не отображается)

В следующей ссылке сказано, что я могу просто использовать.plot () Функция для построения геоданных: http://geopandas.org/mapping.html

Я скопировал код из курса в универе, но они используют IDE Spyder. Мне действительно нравится VS-код из-за его функции автозаполнения и Intelisense.

Какая важная часть мне не хватает?

ОБНОВЛЕНИЕ: Когда я пытаюсь запустить следующий код, предложенный martinfleis в комментариях:

world = gpd.read_file(geopandas.datasets.get_path('naturalearth_lowres'))
world.plot()

я получаю следующую ошибку:

"The descartes package is required for plotting polygons in geopandas."
ImportError: The descartes package is required for plotting polygons in geopandas.

При использовании сообщения об ошибке предлагается импорт:

from descartes.patch import PolygonPatch

Это не кажетсячтобы найти пакет descartes:

Exception has occurred: ModuleNotFoundError
No module named 'descartes'
  File "C:\Users\giebe\projects\GIS\Coding_2\Monte_Carlo.py", line 6, in <module>
    from descartes.patch import PolygonPatch

Итак, я установил descartes в Терминал, используя

conda install descartes matplotlib

. Он обнаруживается с помощью команды pip freeze, так что устанавливается descartes. Но ошибка все еще сохраняется. (Нет модуля с именем descartes)

...