簡體   English   中英

CRSError:無效的投影:epsg:4326:對於geopandas

[英]CRSError: Invalid projection: epsg:4326: for geopandas

我正在為 geopandas 使用 anaconda。 但是,每次我嘗試使用 epsg:4326: 時,它都會出錯。

CRSError: Invalid projection: epsg:4326: (Internal Proj Error: proj_create: SQLite error on SELECT name, type, coordinate_system_auth_name, coordinate_system_code, datum_auth_name, datum_code, area_of_use_auth_name, area_of_use_code, text_definition, deprecated FROM geodetic_crs WHERE auth_name = ? AND code = ?: no such column: area_of_use_auth_name)

我怎么解決這個問題?

我試過了:

from functools import partial
from pyproj import Proj, transform
proj_4326 = Proj(init="epsg:4326")
proj_3857 = Proj(init="epsg:3857")

我也嘗試重置環境:

conda update anaconda

但他們都給出了相同的 CRSError

我的版本是:

import sys
import pyproj
import geopandas
print(sys.version)
print(pyproj.__version__)
print(geopandas.__version__)
3.8.5 (default, Sep  4 2020, 02:22:02) 
[Clang 10.0.0 ]
2.6.1.post1
0.8.2

我該如何解決這個問題?

正確的語法如下:

proj_4326 = Proj("epsg:4326")
proj_3857 = Proj("epsg:3857")

此代碼為您提供基本投影,稱為 WGS84:

from pyproj import CRS

crs=CRS('EPSG:4326')

如果您需要 proj4,請執行以下操作:

from pyproj import CRS

crs=CRS('EPSG:4326').to_proj4()

On Windows 10, after a few hours of work, I finally had crs=CRS("epsg:3857) recognized by installing geopandas version 0.9.0 instead of the version (0.6.X both on Anaconda and pip from the OS). I還必須以這種方式在 shapefile 上分配 crs:

prov_shp=geopandas.read_file(fichier_dist )
prov_shp.set_crs(epsg=4326, inplace=True)

...能夠從 EPSG:4326 重新投影到 EPSG:3857:

crs=CRS("epsg:3857")
prov_shp = prov_shp.to_crs(crs)

我有同樣的問題。 經過一番研究,我發現 anaconda 將有一個特定的 geopandas 目錄,一旦它在那里查找 pyproj,它就找不到了,因為在我的情況下,它是與 pip 一起安裝的,因為在 Windows 中安裝 geopandas 是一種考驗(我通常使用 Linux)。 解決方案是使用 conda 刪除 geopandas,然后使用 pip 刪除 pyproj。 一切都干凈之后(嘗試 conda list 仔細檢查)我只使用 conda install -c conda-forge geopandas 和voilà。 我決定分享以防有人遇到這種煩惱。 沒有必要為您的地理數據尋找正確的格式。

https://github.com/geopandas/geopandas/issues/1887

我發現了這個:

特別是在您的情況下,您似乎使用 pip 安裝了 pyproj(作為一個輪子,因為它在 pyproj 包中查找 PROJ 數據),而不是使用 conda(盡管您使用的是 conda 環境)。 最好用 conda 安裝所有這些包(特別是對於非純 python 包,例如 pyproj)

康達創建-n pyproj

康達激活pyproj

conda 配置 -- 添加通道 conda-forge

conda config --set channel_priority 嚴格

康達安裝pyproj

更新:答案(y)

康達停用

康達環境刪除-n pyproj

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM