标签: pyproj

GDAL:重新投影netCDF文件

我正在尝试通过GDAL将netCDF文件转换为EPSG:3857,以便与Mapbox一起使用。这将是.nc到.nc的转换。不光栅。我愿意使用GDAL或其他方法来执行此操作。必须将这些数据重新投影到控制台应用程序之前-这个过程要花几周时间才能找到解决方案-我认为这很简单。

我正在为卫星数据着色。有3个.nc文件(蓝色,红色和红外)经过组合和处理后可以创建彩色图像。从Amazon AWS下载3个文件后,一个python控制台应用程序进行处理并将.jpg转储到同一文件夹。该应用程序的源代码位于此处,因此您可以验证数据。(因为文件是超高分辨率,所以速度很慢)。

我试过的代码是:

gdalwarp -t_srs EPSG:3857 test.nc test-projected.nc
Run Code Online (Sandbox Code Playgroud)

但是,还尝试了其他几种变体,但没有任何效果。

我不是专业人士,但我是否应该使用gdalwarp来做到这一点?我只想更改投影-别无其他,因此python应用仍然可以处理数据。它必须能够使用重新投影的文件来创建.jpg。

以下链接是需要转换的数据的样本:

AWS>彩色通道1(蓝色1km分辨率)上的.nc文件

AWS> .Color Channel 2上的.nc文件(红色,更高0.5km分辨率和更大的文件大小)

AWS>彩色通道3(红外-用作绿色)上的.nc文件

另外,其他在线用户已经通过pyproj模块(位于https://github.com/blaylockbk/pyBKB_v2/tree/master/BB_GOES16)使用类似的投影来完成此操作。(与Mapbox一起使用时,我的必须为EPSG:3857)。如果将python代码修改为一次性完成所有操作,那也将很棒。我将悬赏作为最后的希望。

预期结果

我不了解python,因此我一直在尝试GDAL,但是添加到我的源代码中以达到预期结果的工作python代码(或有效的GDAL脚本)将获得丰厚的回报。

python gis geospatial gdal pyproj

7
推荐指数
2
解决办法
686
查看次数

如何使用 Python 获取 GeoJSON 多边形的面积

我有 GeoJSON

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Polygon",
        "coordinates": [
          [[13.65374516425911, 52.38533382814119], [13.65239769133293, 52.38675829106993], [13.64970274383571, 52.38675829106993], [13.64835527090953, 52.38533382814119], [13.64970274383571, 52.38390931824483], [13.65239769133293, 52.38390931824483], [13.65374516425911, 52.38533382814119]]
        ]
      }
    }
  ]
}
Run Code Online (Sandbox Code Playgroud)

这http://geojson.io显示为

在此处输入图片说明

我想用 Python 计算它的面积 (87106.33m^2)。我怎么做?

我试过的

# core modules
from functools import partial

# 3rd pary modules
from shapely.geometry import Polygon
from shapely.ops import transform
import pyproj

l = [[13.65374516425911, 52.38533382814119, 0.0], [13.65239769133293, 52.38675829106993, 0.0], [13.64970274383571, 52.38675829106993, 0.0], [13.64835527090953, 52.38533382814119, 0.0], …
Run Code Online (Sandbox Code Playgroud)

python geojson pyproj

6
推荐指数
1
解决办法
1万
查看次数

如何在Python中从中心点创建坐标网格?

有没有一种方法可以从中心坐标中提取坐标网格(紫色点),例如每个坐标之间的距离为 100 米?

在此输入图像描述

例如输入纬度和经度中心坐标(红点):

lat = 40.8264859
lon = -3.6805897
Run Code Online (Sandbox Code Playgroud)

在一个函数中,该函数返回一个列表或数组的列表,其中包含相应的纬度、经度网格,彼此相距 100 米,以及距中心点的最大坐标数(在此图像情况下,该值将为2)。例如:

def get_grid_of_coordinates_from_center(lat, lon, meters_between_coor, coors_away_from_center):
    ...
    return list_of_lists
Run Code Online (Sandbox Code Playgroud)

python numpy python-3.x shapely pyproj

6
推荐指数
2
解决办法
6412
查看次数

从 GeoDataFrame.crs 结果中提取 EPSG 代码

假设我GeoDataFrame有一套CRS。

gdf.crs
Run Code Online (Sandbox Code Playgroud)

给我

<Projected CRS: EPSG:25833>
Name: ETRS89 / UTM zone 33N
Axis Info [cartesian]:
- [east]: Easting (metre)
- [north]: Northing (metre)
Area of Use:
- undefined
Coordinate Operation:
- name: UTM zone 33N
- method: Transverse Mercator
Datum: European Terrestrial Reference System 1989
- Ellipsoid: GRS 1980
- Prime Meridian: Greenwich
Run Code Online (Sandbox Code Playgroud)

这是类型<class 'pyproj.crs.crs.CRS'>。EPSG Code有没有办法从中提取25833?

python geopandas pyproj

6
推荐指数
1
解决办法
2249
查看次数

在 Python 中将纬度、经度和海拔高度转换为本地 ENU 坐标

如何使用 Python 将大地测量(纬度、经度、高度)坐标转换为本地切线平面 ENU(东、北、上)坐标?

pyproj 包似乎没有正确的功能......

coordinate-systems coordinate-transformation python-2.7 pyproj

5
推荐指数
3
解决办法
7257
查看次数

使用 pyinstaller 将 .py 转换为 .exe 后,出现错误“No module named 'pyproj._datadir'”

我的代码在 .py 时运行良好,但是当我使用 pyinstaller 创建 .exe 文件时,它显示 ModuleNotFoundError。

我在制作 .exe 时写了这个

pyinstaller -F MyCode.py
Run Code Online (Sandbox Code Playgroud)

我怎么解决这个问题?

我读了

pyinstaller 和 pyproj 的问题

我打算尝试在 Pyinstaller 的“hooks”文件夹中创建并定位 hook-pyproj.py。但是 hook-pyproj.py 已经存在,并且具有相同的代码。

之后,我安装了“底图”并尝试从中使用 pyproj。但是它向我显示了同样的错误。

这是我执行 .exe 文件时显示的错误。(我用*****覆盖了一些信息)

Traceback (most recent call last):
  File "collect\MyCode.py", line 8, in <module>
  File "c:\users\*****\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\mpl_toolkits\basemap\__init__.py", line 41, in <module>
  File "c:\users\*****\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pyproj\__init__.py", line 62, in <module>
  File "c:\users\*****\appdata\local\programs\python\python36-32\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 627, in exec_module
    exec(bytecode, module.__dict__)
  File "site-packages\pyproj\crs.py", …
Run Code Online (Sandbox Code Playgroud)

pyinstaller python-3.6 pyproj

5
推荐指数
1
解决办法
4309
查看次数

PROJ pyproj 将点 EPSG 4326 (WSG 84) 转换为 (EPSG 28992)

给定一个(lon,lat)点(5.068913,52.067567)我想使用pyproj.

两者中的Proj, 和transform函数pyproj似乎都适合这样的任务:

当我使用该Proj函数时,我得到的结果与使用 不同transform,为什么?

例如

from shapely.geometry import Point
from pyproj import Proj, transform

from matplotlib import pyplot as plt

x1, y1 = 5.068913, 52.067567

in_proj = Proj(init='epsg:4326') 
out_proj = Proj(init='epsg:28992')

point1 = Point(out_proj(x1, y1))
point2 = Point(transform(in_proj, out_proj, x1 ,y1))

print(point1 == point2)

fig, ax = plt.subplots()
x, y = point1.xy
ax.plot(x, y, 'ro')
x, y = point2.xy
ax.plot(x, y, 'ro')
Run Code Online (Sandbox Code Playgroud)

点

python gis coordinate-systems pyproj

5
推荐指数
1
解决办法
1718
查看次数

无法从“pyproj”导入名称“CRS”以使用 osmnx 库

我使用全新的 anaconda 安装下载并安装 osnmx 库所需的所有模块,但出现以下错误: 在此处输入图片说明

python anaconda data-science pyproj osmnx

5
推荐指数
2
解决办法
7052
查看次数

pyproj - 导入错误:无法导入名称“_datadir”

安装后pyproj,geopandas导入后者时出现错误:

!conda install --offline -c conda-forge geopandas-0.7.0-py_1.tar.bz2
!conda install --offline -c conda-forge pyproj-2.6.0-py38hff69d4a_0.tar.bz2
import geopandas

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-8-f30f80f43dee> in <module>()
      1 # from pyproj import _datadir, datadir
----> 2 import geopandas

~\AppData\Local\Continuum\anaconda3\lib\site-packages\geopandas\__init__.py in <module>()
----> 1 from geopandas.geoseries import GeoSeries  # noqa
      2 from geopandas.geodataframe import GeoDataFrame  # noqa
      3 from geopandas.array import _points_from_xy as points_from_xy  # noqa
      4 
      5 from geopandas.io.file import read_file  # noqa

~\AppData\Local\Continuum\anaconda3\lib\site-packages\geopandas\geoseries.py in <module>()
      7 from …
Run Code Online (Sandbox Code Playgroud)

python importerror pyproj

5
推荐指数
1
解决办法
2002
查看次数

在 PyProj 的全新 Conda 安装上:pyproj 无法设置数据库路径。_pyproj_global_context_initialize()

我想用PyProj. 我按照文档中给出的安装说明进行操作

conda config --prepend channels conda-forge
conda config --set channel_priority strict
conda install pyproj
Run Code Online (Sandbox Code Playgroud)

当我跑步时

from pyproj import CRS
Run Code Online (Sandbox Code Playgroud)

我正进入(状态

C:\Users...\Miniconda3\envs\geopandas\lib\site-packages\pyproj_ init _.py:89: UserWarning: pyproj 无法设置数据库路径。_pyproj_global_context_initialize()

关于Python和我的系统的一些信息

Python 版本 -> 3.9.7 | 由 conda-forge 打包 | (默认,2021 年 9 月 29 日,19:15:42)[MSC v.1916 64 位 (AMD64)]

操作系统信息 -> Windows-10-10.0.19042-SP0

python anaconda miniconda pyproj

5
推荐指数
1
解决办法
5955
查看次数