嗨,我正在尝试使用带有Geopandas的VS-Code绘制地理数据
我的代码如下:
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()Funktion来绘制地理数据: http://geopandas.org/mapping.html
我从uni的一门课程中复制了代码,但是他们正在使用Spyder IDE。我真的很喜欢VS-Code,因为它具有自动完成功能和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
似乎找不到笛卡尔软件包:
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
所以我在终端安装了笛卡尔
conda install descartes matplotlib
它与pip Frozen命令一起显示,因此安装了笛卡尔。 但是错误仍然存在。(没有名为笛卡尔的模块)