当前位置: 首页 > 知识库问答 >
问题:

geopandas df至lat/lon列中的形状点几何图形

东郭勇
2023-03-14

我有一个geopandas df和一列形状优美的点对象。我想从shapely point对象中提取坐标(lat/lon),以生成纬度和经度列。一定有一个简单的方法可以做到这一点,但我想不出来。

我知道你可以像这样提取单个坐标:

lon = df.point_object[0].x
lat = df.point_object[0].y

我可以为整个df创建一个函数,但我认为有一种更高效、更优雅的方法。

共有3个答案

鲁成天
2023-03-14

从多边形和多边形中提取中心点(纬度和经度)的解决方案。

import geopandas as gpd
df = gpd.read_file(path + 'df.geojson')
#Find the center point
df['Center_point'] = df['geometry'].centroid
#Extract lat and lon from the centerpoint
df["long"] = df.Center_point.map(lambda p: p.x)
df["lat"] = df.Center_point.map(lambda p: p.y)
吕扬
2023-03-14

无需迭代Dataframe,您可以执行以下操作:

df['lon'] = df['geometry'].x
df['lat'] = df['geometry'].y
曹高轩
2023-03-14

如果您拥有最新版本的geopandas(编写时为0.3.0),并且Ifdf是一个GeoDataFrame,则可以使用几何体列上的xy属性:

df['lon'] = df.point_object.x
df['lat'] = df.point_object.y

通常,如果有一列形状优美的对象,也可以使用apply对整列的各个坐标执行以下操作:

df['lon'] = df.point_object.apply(lambda p: p.x)
df['lat'] = df.point_object.apply(lambda p: p.y)
 类似资料:
  • 我对R相对较新。我正在尝试从 netCDF 文件中获取温度数据的不同点(纬度、纬度)的时间序列。我的示例数据文件在这里,这里是小文件。我已经尝试了netCDF包和到目前为止我使用的代码 有人能帮我得到一个时间序列的数据帧(第一列)和另一列中某个特定点(lat,lon)的数据值吗。在这种情况下,我正在寻找一个特定纬度点(并对许多兴趣点重复)和给定变量(在本例中为tasmin)的时间序列(1950-0

  • 如果(status!=ConnectionResult.Success){//Google Play服务不可用,则显示状态 获取对SupportMapFragment的引用 从片段获取GoogleMap对象 获取最佳提供程序的名称 正在获取当前位置 获取当前位置的纬度 在Google Map中显示当前位置 缩放谷歌地图 在TextView tv_location中设置纬度和经度 这是我使用arra

  • 我在学Android。现在我正在开发一个使用地图API的应用程序。到目前为止,我做了以下操作:-我长时间点击了地图,并打开了一个新的ActivityCyclickedMap,其中显示了我点击的位置的lat和lon-我点击了save按钮,并将lat和lon添加到服务器和我的本地数据库中 我想做的事情是这样的:-当我打开地图时,我想让它显示一个标记,使用数据库中的lat和lon

  • 我想创建一个多边形从形状点。

  • 虽然这一形状的名字叫立方体(CubeGeometry),但它其实是长方体,也就是长宽高可以设置为不同的值。其构造函数是: THREE.CubeGeometry(width, height, depth, widthSegments, heightSegments, depthSegments) 这里,width是x方向上的长度;height是y方向上的长度;depth是z方向上的长度;后三个参数

  • 在创建物体时,需要传入两个参数,一个是几何形状(Geometry),另一个是材质(Material)。本章将介绍几何形状的创建,第4章介绍材质,第5章介绍如何使用这两者创建网格。 几何形状(Geometry)最主要的功能是储存了一个物体的顶点信息。WebGL需要程序员指定每个顶点的位置,而在Three.js中,可以通过指定一些特征来创建几何形状,例如使用半径创建一个球体,从而省去程序员一个个指定顶