![](/img/trans.png)
[英]Change projection of tile provider in bokeh in EPSG:3857 ("web mercator") to my source's in EPSG:4326
[英]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.