Привет. Я пытаюсь нанести 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)