当我在相同的输入上连续运行 geopandas 的
.to_crs()
函数两次时,我得到两个不同的结果。
这是我的环境:
name: geotest
channels:
- defaults
- conda-forge
dependencies:
- python=3.11
- geopandas
这是在该环境中运行的最小示例:
import geopandas as gpd
import shapely
print(
gpd.GeoDataFrame(
geometry=[shapely.geometry.Point(-100,40)], crs='EPSG:4326')
.to_crs('ESRI:102008')
)
# Exactly the same command
print(
gpd.GeoDataFrame(
geometry=[shapely.geometry.Point(-100,40)], crs='EPSG:4326')
.to_crs('ESRI:102008')
)
从中我得到:
$ python minimal.py
Intel MKL WARNING: Support of Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled only processors has been deprecated. Intel oneAPI Math Kernel Library 2025.0 will require Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.
Intel MKL WARNING: Support of Intel(R) Streaming SIMD Extensions 4.2 (Intel(R) SSE4.2) enabled only processors has been deprecated. Intel oneAPI Math Kernel Library 2025.0 will require Intel(R) Advanced Vector Extensions (Intel(R) AVX) instructions.
geometry
0 POINT (inf inf)
geometry
0 POINT (-321422.376 6782.160)
我希望这两个命令都有第二个答案。
我的
conda list
的相关部分是:
python 3.11.7 hf27a42d_0
gdal 3.6.2 py311he4f215e_4
geopandas 0.14.2 py311hecd8cb5_0
geopandas-base 0.14.2 py311hecd8cb5_0
geos 3.8.0 hb1e8313_0
pyproj 3.6.1 py311h717f92e_0
shapely 2.0.1 py311ha6175ea_0
我使用的是 mac M1,但使用 Intel 版本的 Anaconda 来与其他软件包兼容。
感谢@Diego提出了geopandas的问题(https://github.com/geopandas/geopandas/issues/3433),我遇到了两种不同的方法来解决这个问题(源自
pyproj
):
如 https://github.com/pyproj4/pyproj/issues/705 中所述,将这些行添加到序言中:
import pyproj
pyproj.network.set_network_enabled(False)
选项 2:预下载投影数据https://pyproj4.github.io/pyproj/stable/transformation_grids.html所述,将proj-data
包添加到conda环境中。使用单一通道也是最安全的。 要么运行
conda install -c conda-forge proj-data
或使用此环境:
name: geotest
channels:
- conda-forge
dependencies:
- python
- geopandas
- proj-data