我有几个多边形,我喜欢从这些多边形中的几个栅格图层中提取平均值.当我将它们添加到ArcMap时,我意识到两种数据类型的投影不匹配.我可以使用"项目"工具("数据管理"工具箱>"投影和转换"工具集>"栅格")解决ArcGIS中显示的问题.所以我尝试通过以下方式将数据加载到R中来标准化投影(部分代码):
栅格数据:
for (i in 1:length(rasterlist1))
{ndvi_raster_stack1[i]<-raster(rasterlist1[i])
raster::NAvalue(ndvi_raster_stack1[[i]])<--999
projection(ndvi_raster_stack1[[i]])<-"+proj=utm +ellps=WGS84 +datum=WGS84 +units=m"}
> ndvi_raster_stack1[[1]]
class : RasterLayer
dimensions : 226, 150, 33900 (nrow, ncol, ncell)
resolution : 0.57504, 0.5753628 (x, y)
extent : -28.728, 57.528, -55.08, 74.952 (xmin, xmax, ymin, ymax)
coord. ref. : +proj=utm +ellps=WGS84 +datum=WGS84 +units=m +towgs84=0,0,0
values : Z:\master\lusmeg_sw_kernel_data\ndvi0910\Y2008_P47.tif
min value : -91
max value : 550.8125
Run Code Online (Sandbox Code Playgroud)
多边形:
for (i in 1:length(poplist))
{pop_kernels[i]<-readShapeSpatial(poplist[i],repair=TRUE,proj4string=CRS("+proj=utm +ellps=WGS84 +datum=WGS84 +units=m"))
pop_kernels[[i]]<-unionSpatialPolygons(pop_kernels[[i]],ID=c(rep(1,times=length(pop_kernels[[i]])-1),0),threshold=NULL,avoidGEOS=FALSE)}
> str(pop_kernels[[1]])
Formal class 'SpatialPolygons' [package "sp"] with 4 slots …Run Code Online (Sandbox Code Playgroud) 我有一个包含 2017 年发生的所有 Stop 和 Frisks 的表格。我得到了它们在长岛坐标中发生位置的坐标,但我想将其转换为纬度和经度坐标,以便我可以在 Leaflet 中绘制它。
我有以下代码片段:
library(sp)
library(dplyr)
fd <- "https://www1.nyc.gov/assets/nypd/downloads/excel/analysis_and_planning/stop-question-frisk/sqf-2017.csv"
stop_and_frisk <- read.csv(fd)
saf <- stop_and_frisk %>% filter(STOP_FRISK_ID < 5 ) # filtering to keep data small
saf_spdf <- saf
coordinates(saf_spdf) <- ~STOP_LOCATION_X + STOP_LOCATION_Y
CRS_obj <- CRS('+proj=lcc +lat_1=41.03333333333333 +lat_2=40.66666666666666 +lat_0=40.16666666666666 +lon_0=-74 +x_0=300000.0000000001 +y_0=0 +ellps=GRS80 +datum=NAD83 +to_meter=0.3048006096012192 +no_defs')
spTransform(saf_spdf, CRS_obj)
Run Code Online (Sandbox Code Playgroud)
我希望坐标会发生变化,但我不断收到错误消息
No transformation possible from NA reference system
我不知道为什么。我之前没有做过很多 CRS 转换。我认为上面的代码应该足以重现问题
我正在尝试安装pyproj,但出现Proj executable not found. Please set PROJ_DIR variable错误。
$ pipenv install pyproj
我也尝试pipenv git+https://github.com/jswhit/pyproj.git#egg=pyproj过同样的结果。
$ pipenv install pyproj
Installation Succeeded
Locking [dev-packages] dependencies
Locking ['packages] dependancies
Success!
Installing dependencies from Pipfile.lock
[pipenv.exceptions.InstallError]: ['Collecting pyproj==2.0.0 (from -r /var/folders/g3/912
vtylj2hb71xf_d_8sxz480000gn/T/pipenv-qeun2uwi-requirements/pipenv-behbdii2-requirement.tx
t (line 1))', ' Using cached https://files.pythonhosted.org/packages/53/4b/21643a93e7d33
941498087290636e34c6d534aa8baa1ada54cf0d096ffaa/pyproj-2.0.0.tar.gz', ' Installing build
dependencies: started', " Installing build dependencies: finished with status 'done'",
' Getting requirements to build wheel: started', " Getting requirements to build …
I downloaded a MODIS .hdf file. Loading it with xarray, it gives me an attribute ds.Proj4String == ' +a=6378137.0 +b=6356752.3142451793 +no_defs +proj=latlong\n'.
How can I use that string to convert the raw coordinates to e.g. lat/lon?
This is what the data look like:
<xarray.Dataset>
Dimensions: (XDim:mod06: 1503, YDim:mod06: 833)
Dimensions without coordinates: XDim:mod06, YDim:mod06
Data variables:
Cloud_Optical_Thickness (YDim:mod06, XDim:mod06) float32 ...
Attributes:
HDFEOSVersion: HDFEOS_V2.19
StructMetadata.0: GROUP=SwathStructure\nEND_GROUP=SwathStructure\nGROUP=...
CoreMetadata: \nGROUP = INVENTORYMETADATA\n GROUPTYPE = MASTERGROUP...
ArchiveMetadata: GROUP = ARCHIVEDMETADATA\n GROUPTYPE = …Run Code Online (Sandbox Code Playgroud) 我在下面的Python代码中运行了Python代码,该代码是"绘制地图:可视化海地地震危机数据"的一本书,用于数据分析.第242-246页
该代码应该创建一个海地的情节地图,但我得到一个错误如下:
Traceback (most recent call last):
File "Haiti.py", line 74, in <module>
x, y = m(cat_data.LONGITUDE, cat_data.LATITUDE)
File "/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/__init__.py", line 1148, in __call__
xout,yout = self.projtran(x,y,inverse=inverse)
File "/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/proj.py", line 286, in __call__
outx,outy = self._proj4(x, y, inverse=inverse)
File "/usr/local/lib/python2.7/site-packages/mpl_toolkits/basemap/pyproj.py", line 388, in __call__
_proj.Proj._fwd(self, inx, iny, radians=radians, errcheck=errcheck)
File "_proj.pyx", line 122, in _proj.Proj._fwd (src/_proj.c:1571)
RuntimeError
Run Code Online (Sandbox Code Playgroud)
我检查了我的机器上是否安装了mpl_toolkits.basemap和proj模块.Basemap是按照指示从源代码安装的,而proj是由Homebrew安装的,它们看起来很好.
如果您安装了底图和proj,此代码是否成功运行?如果没有,您认为这是模块安装问题,代码本身还是其他任何问题?
Haiti.csv文件可以从https://github.com/pydata/pydata-book/raw/master/ch08/Haiti.csv下载
import pandas as pd
import numpy as np
from …Run Code Online (Sandbox Code Playgroud) 我正在使用可以在此处找到的Proj.4 Java库, 而且我不确定如何在Proj.4JS中实现如下代码:
// include the library
<script src="lib/proj4js-combined.js"></script> //adjust the path for your server
//or else use the compressed version
// creating source and destination Proj4js objects
// once initialized, these may be re-used as often as needed
var source = new Proj4js.Proj('EPSG:4326'); //source coordinates will be in Longitude/Latitude, WGS84
var dest = new Proj4js.Proj('EPSG:4141'); //destination coordinates in meters, global spherical mercators projection, see http://spatialreference.org/ref/epsg/3785/
// transforming point coordinates
var p = new Proj4js.Point(-76.0,45.0); //any object will …Run Code Online (Sandbox Code Playgroud) 我在 Ubuntu 19.10 上,我正在尝试安装 proj 7.2.0
根据网站,我应该使用这个:
sudo apt-get install proj-bin
Run Code Online (Sandbox Code Playgroud)
但似乎这个命令安装的是 5.2.0 版本:
Reading package lists... Done
Building dependency tree
Reading state information... Done
The following packages were automatically installed and are no longer required:
libappindicator1 libdbusmenu-gtk4
Use 'sudo apt autoremove' to remove them.
The following NEW packages will be installed:
proj-bin
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
Need to get 63,9 kB of archives.
After this operation, 245 kB of additional …Run Code Online (Sandbox Code Playgroud) 我有 WGS84 中的 lat、lng 修复列表,我想在这些列表上进行计算,例如点、多边形之间的距离测量等...为此,我计划使用匀称但后来,我需要将其转换为笛卡尔空间,这只是局部准确。
我的问题是我的位置修复可能来自世界各地,所以如果我使用针对我所在地区优化的固定投影,我会在世界其他地方引入错误。是否可以根据当前位置列表的平均位置来定义我自己的以位置对为中心的笛卡尔投影?我需要计算的位置修复总是彼此接近,但不同的位置修复列表可以分布在世界各地。
例如:假设我得到 5 个修复,我需要对其进行计算。然后,我想定义一个在这些定位点附近准确的投影,因为这些定位点之间的距离始终在几公里之内。当我获得接下来的 5 个修复时,它们可能位于世界的完全不同的地方,我想定义一个针对这些位置修复优化的投影。
我将如何解决这个问题?似乎使用 pyproj(如果我理解得很好,则使用 proj.4)是一个好主意,但我无法理解初始化投影所需的字符串,如下所示。有人能帮我吗?
local_proj = pyproj.Proj(r'+proj=tmerc +lat_0=51.178425 +lon_0=3.561298 +ellps=GRS80 +units=meters')
Run Code Online (Sandbox Code Playgroud) 即使我的问题如何在 python 中创建一个围绕坐标 5 英里的精确缓冲区有答案?,但我不能代表它。
我有一系列标准经纬度格式的位置,需要计算 buffer米它们。
这些地点来自葡萄牙,所以我在crs这里选择了“正确” :https : //epsg.io/3763,即epsg:3763
gdf = gpd.GeoDataFrame(df, geometry=gpd.points_from_xy(df['latitude'], df['longitude']),
crs={'init' :'epsg:3763'})
gdf['radius'] = gdf.geometry.buffer(50)
Run Code Online (Sandbox Code Playgroud)
根据上面的答案,这应该给我以米为单位的指定半径周围的多边形,但实际上以度为单位返回半径。
我知道,这应该很简单,但我仍然很困惑。谢谢!
我想在使用打字稿的反应中重现这个highmaps 示例。然而,纬度/经度点没有显示出来,这似乎与 proj4 包有关,因为它在这个 javascript演示中工作。
我已经在现场演示中尝试过。如果我按如下方式加载包,它没有被使用,但我不知道应该在哪里调用它:
import * as proj4 from "proj4";
Run Code Online (Sandbox Code Playgroud)
提前致谢!
看来我无法在计算机上安装Cartopy。我直接从Windows命令行工作(没有Anaconda或其他代理程序)。
当我尝试“ pip install cartopy”时,得到了预期的结果:
C:\Users\Justin\Documents\Python Programs>pip install cartopy
Collecting cartopy
Using cached https://files.pythonhosted.org/packages/e5/92/fe8838fa8158931906dfc4f16c5c1436b3dd2daf83592645b179581403ad/Cartopy-0.17.0.tar.gz
Installing build dependencies ... done
Complete output from command python setup.py egg_info:
C:\Users\Justin\AppData\Local\Temp\pip-install-cetb0vj7\cartopy\setup.py:171: UserWarning: Unable to determine GEOS version. Ensure you have 3.3.3 or later installed, or installation may fail.
'.'.join(str(v) for v in GEOS_MIN_VERSION), ))
Proj 4.9.0 must be installed.
----------------------------------------
Command "python setup.py egg_info" failed with error code 1 in C:\Users\Justin\AppData\Local\Temp\pip-install-cetb0vj7\cartopy\
Run Code Online (Sandbox Code Playgroud)
我知道“ pip install proj”实际上没有获得正确的模块版本,所以我去了https://proj4.org/install.html下载并安装OSGeo4W,我以为可以解决我的问题,但似乎没有(供参考,我的电脑上仍然有此功能)。
因此,然后我尝试直接从此https://www.lfd.uci.edu/~gohlke/pythonlibs/#cartopy网站安装cartopy .whl,并尝试使用“ pip install Cartopy-0.17.0-cp37-cp37m-win32”。 …
proj ×11
python ×3
cartopy ×2
pip ×2
pyproj ×2
r ×2
apt-get ×1
geopandas ×1
geospatial ×1
gis ×1
highcharts ×1
java ×1
package ×1
pandas ×1
polygons ×1
python-2.7 ×1
raster ×1
reactjs ×1
shapely ×1
typescript ×1