Datawhale 智慧海洋建设-Task1

这是在datawhale组织里参加的一个组队学习,内容是海洋数据分析,第一章内容还未学完,后面学习完毕会及时补充整个笔记,这里说声抱歉
DataWahle

Datawhale 智慧海洋建设-Task1 地理数据分析常用工具

在地理空间数据分析中,常会用到许多地理分析的工具,在本模块中主要是针对常用的shapely、geopandas、folium、kepler.gl、geohash等工具进行简单介绍

shapely

Shapely是python中开源的空间几何对象库,支持Point、Curve和Surface等基本几何对象类型以及相关空间操作。

Point、LineString和LinearRing有一些功能非常有用。

几何对象可以和numpy.array互相转换。

可以求线的长度(length),面的面积(area),对象之间的距离(distance),最小最大距离(hausdorff_distance),对象的bounds数组(minx, miny, maxx, maxy)

可以求几何对象之间的关系:相交(intersect),包含(contain),求相交区域(intersection)等。

可以对几何对象求几何中心(centroid),缓冲区(buffer),最小旋转外接矩形(minimum_rotated_rectangle)等。

可以求线的插值点(interpolate),可以求点投影到线的距离(project),可以求几何对象之间对应的最近点(nearestPoint)

可以对几何对象进行旋转(rotate)和缩放(scale)

import shapely
from shapely import geometry as geo
from shapely import wkt
from shapely import ops
import numpy as np
from shapely.geometry.polygon import LinearRing
#point 的赋值
point = geo.Point(1,1)
np.array(point)
array([1., 1.])
point_1 = geo.Point((0,0))
geo.GeometryCollection([point,point_1])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-fgNBzeJ9-1618417398215)(output_7_0.svg)]

point_2 = geo.Point(point)
list(point_2.coords)
[(1.0, 1.0)]

LineStrings

arr = np.array([(0,0),(1,1),(1,0)])
line = geo.LineString(arr)
print ('两个几何对象之间的距离:'+str(geo.Point(2,2).distance(line)))#该方法即可求线线距离也可以求线点距离
两个几何对象之间的距离:1.4142135623730951
print('两个几何对象之间的hausdorff_distance距离:'+str(geo.Point(2,2).hausdorff_distance(line)))
两个几何对象之间的hausdorff_distance距离:2.8284271247461903
print('该几何对象的面积:'+str(line.area))
该几何对象的面积:0.0
print('该几何对象的坐标范围:'+str(line.bounds))
该几何对象的坐标范围:(0.0, 0.0, 1.0, 1.0)
print('该几何对象的长度:'+str(line.length))
该几何对象的长度:2.414213562373095
print('该几何对象的几何类型:'+str(line.geom_type))
该几何对象的几何类型:LineString
print('该几何对象的坐标系:'+str(list(line.coords)))
该几何对象的坐标系:[(0.0, 0.0), (1.0, 1.0), (1.0, 0.0)]
center = line.centroid #几何中心
geo.GeometryCollection([line,center])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ASFd75Pn-1618417398219)(output_18_0.svg)]

bbox = line.envelope#envelope可以求几何对象的最小外接矩形
geo.GeometryCollection([line,bbox])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ShYu7ICc-1618417398221)(output_19_0.svg)]

rect = line.minimum_rotated_rectangle#最小旋转外接矩形
geo.GeometryCollection([line,rect])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Yn884zXi-1618417398223)(output_20_0.svg)]

pt_half = line.interpolate(0.5,normalized=True) #插值
geo.GeometryCollection([line,pt_half])

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-SShfwKsY-1618417398225)(output_21_0.svg)]

ratio = line.project(pt_half,normalized=True) # project()方法是和interpolate方法互逆的
ratio
0.5

DouglasPucker算法的应用,在轨迹分析中经常会用得到

line1 = geo.LineString([(0,0),(1,-0.2),(2,0.3),(3,-0.5),(5,0.2),(7,0)])
line1_simplify = line1.simplify(0.4, preserve_topology=False)  #Douglas-Pucker算法
line1_simplify

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-k55DJM84-1618417398227)(output_24_0.svg)]<

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值