首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

(数据科学学习手札77)基于geopandas的空间数据分析——文件IO

本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介   在上一篇文章中我们对geopandas中的坐标参考系有了较为深入的学习...图3 缺少投影的shapefile   当shapefile中缺失.prj文件时,使用geopandas读入后形成的GeoDataFrame会缺失crs属性: ?...图4   如果已经知道数据对应的CRS,可以在读入数据后补充上crs信息以进行其他操作: import pyproj data.crs = pyproj.CRS.from_user_input('EPSG...图19   也可以向指定的文件夹下追加图层: data.to_file('output/output_shapefile_multi_layer', driver='ESRI...图21   但我观察到即使出现了上述错误,GeoPackage文件也是成功保存到路径下的且整个程序并未被打断,因此可以无视上述错误: ?

2.1K31

Python地信专题 | 基于geopandas的空间数据分析-文件IO篇

本文对应代码和数据已上传至我的Github仓库https://github.com/CNFeffery/DataScienceStudyNotes 1 简介 在上一篇文章中我们对geopandas中的坐标参考系有了较为深入的学习...) # 查看数据对应的crs data.head() # 查看前5行 图3 缺少投影的shapefile 当shapefile中缺失.prj文件时,使用geopandas读入后形成的GeoDataFrame...output/output_shapefile', driver='ESRI Shapefile', encoding='utf-8') 图19 也可以向指定的文件夹下追加图层...但我们可以用QGIS中的GeoPackage作为替代方案(开源世界万岁O(∩_∩)O~~),只需要将driver参数设置为GPKG即可。...这里需要注意一个bug:在使用geopandas导出GeoPackage文件时,可能会出现图21所示错误: 图21 但我观察到即使出现了上述错误,GeoPackage文件也是成功保存到路径下的且整个程序并未被打断

2.3K20
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python地信专题 | 基于geopandas的空间数据分析-坐标参考系篇

    上述的这些用于在不同情况下定义对象位置信息的坐标系统,就称为坐标参考系统(Coordinate Reference System,下文统称CRS): 图2 CRS可细分为地理坐标系和投影坐标系。...地理坐标系以地表上确定的某一个点为原点,创建了包裹全球的网格,譬如WGS84,将本初子午线与赤道的交点作为原点(图4): 图4 WGS84地理坐标系及其经纬网格 2.1.2 投影坐标系 地理坐标系虽然解决了我们在地球球面上定位的问题.../ref/epsg/中查看和搜索所有已知的EPSG与CRS对应关系(图11): 图11 或在QGIS中查看: 图12 譬如对于重庆,因为地跨东经105°11~110°11,中轴线距离108E更近,常用如下投影...,且坐标系单位范围也发生了变化(EPSG:2381单位:米),接下来我们参考谷歌地图上点击出的重庆渝中区某地坐标: 图21 基于此创建只包含一个点的GeoSeries,尝试将其与EPSG:2381下的中国地图一同绘制...同样地,可以在投影后计算更为准确的面积,这里举一个粗糙的例子(实际计算国土面积不会这样粗糙),以中国中轴线东经104.19度最靠近的105度经线对应的EPSG:2380为CRS计算面积: 图24 如果直接用原来的

    2K21

    (数据科学学习手札75)基于geopandas的空间数据分析——坐标参考系篇

    ,下文统称CRS): 图2 CRS可细分为地理坐标系和投影坐标系。...地理坐标系示意图 地理坐标系以地表上确定的某一个点为原点\((0,0)\),创建了包裹全球的网格,譬如WGS84,将本初子午线与赤道的交点作为原点(图5): 图4 WGS84地理坐标系及其经纬网格.../ref/epsg/中查看和搜索所有已知的EPSG与CRS对应关系(图10): 图10   或在QGIS中查看: 图11   譬如对于重庆,因为地跨东经105°11~110°...  通过比较可以发现,再投影之后的中国形变失真情况得到缓解,且坐标系单位范围也发生了变化(EPSG:2381单位:米),接下来我们参考谷歌地图上点击出的重庆渝中区某地坐标: 图20   ...同样地,可以在投影后计算更为准确的面积,这里举一个粗糙的例子(实际计算国土面积不会这样粗糙),以中国中轴线东经104.19度最靠近的105度经线对应的EPSG:2380为CRS计算面积:

    1.7K30

    geotrellis使用(十六)使用缓冲区分析的方式解决投影变换中边缘数据值计算的问题

    二、问题探索        使用QGIS打开导出的Tiff文件,形状、位置、投影等信息都正确,甚至大部分数据值都正确,唯一出现问题的地方就是边缘,边缘出现了很多不正常的值。...也称作零阶插值,就是令变换后像素值等于距它最近的输入像素值。所以采用该方法边缘值计算不会出现问题。        ...简单的说就是选周围的四个点,然后做一条水平的线,按照线性求出水平线与四个点组成的四边形的交点的值,然后根据这两个值再计算出该点的值,理论上使用Bilinear也应该会出现边缘问题,但是实际测试并没有出现...所以我们只能按照不规则区域的外接矩形进行切割,而原始区域又不一定是矩形,即使按照外接矩形切割一样会在很多地方包含扩大后的边界,得不到理想的效果。....raster .crop(poly.envelope)        其中poly为原始区域,extent为缓冲区分析后的面的外接矩形,crs为数据投影方式,poly.envelope

    1.3K40

    如何使用Python处理shp文件

    涉及到空间数据处理的时候,为了比较清晰方便的看出空间数据所处的区域,通常都需要将省市边界线加到地图中。 Python中也提供了大量的shp文件处理方法,有底层的一些库,也有一些封装比较完整的库。...subshp = fiona.open('subshp.shp', mode='w', crs=shps.crs, crs_wkt=shps.crs_wkt,...获取子文件坐标信息 >>> shp.shape.points # 包含了经纬度坐标 >>> shp.shape.bbox # shape子文件范围 上述两个库,均可以进行shape文件的读写操作,但并没有提供可视化的方法...如果想看图的时候可以使用ArcGIS或者QGIS,导入文件即可。或者使用geopandas进行处理,geopandas提供了shape文件的处理和可视化,具有更为简便的API。...包括库导入也只需要3行代码即可。

    14K30

    在模仿中精进数据可视化01:国内38城居住自由指数

    2.2.1 构建坐标系统 因为极坐标系中的参考线非常类似俯视南北极点所看到的经纬线,因此我们可以利用地图学中坐标参考系里的「正射投影」(Orthographic),可以理解为纯粹的半球: 图4 我们只需要设定中心点参数在南极点或北极点...利用下面的函数实现0-100向-90到-80的线性映射: 图8 接下来我们就来为每个指标构造线与散点部分的矢量数据,并在统一转换坐标参考系到「正射投影」之后叠加到之前的图像上: # 为每个城市生成1条经线...2.2.3 绘制填充区域 在相继解决完「坐标系统」、「指标折线绘制」之后,就到了最好玩的部分了,接下来我们来绘制图中购房自由指数与租房自由指数之间的折线,并且要按照「填充较大值对应色彩」的原则来处理,接下来我们需要用到一点简单的拓扑学知识...就是就是两者去除掉彼此重叠区域后各自剩余的部分!...图12 那么接下来我们要做的事就so easy了,只需要分别得到两者去除重叠面后,剩余的部分,以对应的填充色彩叠加绘制在图11的图像上就可以啦~,利用geopandas中的difference即可轻松实现

    86130

    (在模仿中精进数据可视化01) 全国38城居住自由指数可视化

    图4   我们只需要设定中心点参数在南极点或北极点,再配合简单的经纬度相关知识就可以伪造出任意的经纬线,再利用geopandas中的投影变换向设定好的正射投影进行转换,再作为平面坐标进行绘图即可。   ...图8   接下来我们就来为每个指标构造线与散点部分的矢量数据,并在统一转换坐标参考系到正射投影之后叠加到之前的图像上: # 为每个城市生成1条经线 lng_lines = gpd.GeoDataFrame...就是就是两者去除掉彼此重叠区域后各自剩余的部分! ?...图12   那么接下来我们要做的事就so easy了,只需要分别得到两者去除重叠面后,剩余的部分,以对应的填充色彩叠加绘制在图11的图像上就可以啦~,利用geopandas中的difference即可轻松实现...图14   再模仿原作品裁切一下图片,主要元素是不是非常一致了~,大家也可以根据自己的喜好来修改不同的颜色: ?

    81310

    Python空间绘图--Cartopy简介

    gl.ylabels_right = False ##关闭右侧坐标显示 gl.xformatter = LONGITUDE_FORMATTER ##坐标刻度转换为经纬度样式 gl.yformatter...首先解决刻度重叠的问题,在前面的文章中,我们已经指出——所有刻度类型的问题基本可以通过字典的方式解决,查阅官方文档,我们发现一条命令可以更改刻度字体大小: gl.xlabel_style={'size...通过魔改matpltlib出来的地图比气象学家上推送文章更加精美,将南北90度也同时标记出来了。...不过这些资源都需要下载,所以在第一次绘制时候会报错(因为资源未下载),绘制高精度时出图特别慢(本质上是一根线一根线慢慢画,精度越高,转折弯曲越多,绘图越慢),但是绘制成功一次之后,再绘制时就非常快了(因为资源已经下载好了...一是更改目录是一种危险的行为(作为气象本专业的学生,我十分清楚大部分大气科学从业者的计算机水平是不专业的,这是大学专业学得杂,结果样样都会点,样样不精),二是即便是第一次绘制10m精度的图,也只需要大概五分钟即可全部完成

    3.2K33

    在Excel中处理和使用地理空间数据(如POI数据)

    )坐标系更加准确一点,也有查到说必应地图全球统一使用WGS84坐标系。...⇩不同坐标系下的对比 结论:建议使用WGS84坐标系(使用Sid分享脚本的用户可略过) II 自定义底图 Excel提供的底图为必应地图,虽然有很多种色彩体系,但不支持去掉路名、点位名称等标签,可能有点乱...操作:在主工作界面右键——更改地图类型——新建自定义底图——浏览背景图片——调整底图——完成 i 底图校准 加载底图图片后,Excel会使用最佳的数据-底图配准方案——就是让所有数据都落位在底图上。...开篇也提到希望这个POI数据获取脚本有更大的受众,大家都能更快、更好,省时、省力地做事儿——这才是我做这些鬼东西的初衷吧。...最开始因为ArcGIS没有Mac OS版本,所以放弃了对它的支持,QGIS又不是很了解,所幸Excel拥有易于使用的方式,所以又增加了Mac系统下该脚本的可执行文件,然而等我费死劲想去打包脚本,我发现!

    10.9K20

    基础渲染系列(十七)——混合光照

    添加此新模式后,更改了UNITY_LIGHT_ATTENUATION宏后面的代码。在使用完全烘焙或实时照明时,我们没有注意到这一点,但是我们必须更新代码以与混合照明的新方法一起使用。...发生这种情况时,是因为在某些情况下UNITY_SHADOW_COORDS错误地创建了一个插值器,即使实际上并不需要它,而TRANSFER_SHADOW也不会初始化它,从而导致错误。...Unity的宏已经对点光源和聚光灯执行了此操作,但是我们也必须将其包括在FadeShadows函数中。...在CreateLight中,即使当前光源没有实时阴影,我们现在也必须在阴影遮罩的情况下淡化阴影。 ?...为了说明这一点,下面是添加了一个聚光灯后的带有光照贴图的屏幕截图。其中之一变成了烘焙光,你可以在强度图中清楚地看到它。 ? ?

    2.7K40

    geopandas:Python绘制数据地图

    =4326 ) # 将两点转换到以米为单位的坐标系 points = points.to_crs(32619) # 计算点之间的距离,距离单位为坐标系的单位 distance_meters = points...bbox_transform=None, # bbox的变换 ) 此外,也可以更改一像素代表的长度单位,如ScaleBar(2, dimension=“si-length”, units=“km...overlaps:返回两个几何体部分重叠的所有几何体。 lsuffix:组合后左侧数据集中几何对象列的后缀,默认为left。 rsuffix:组合后右侧数据集中几何对象列的后缀,默认为right。...对于两个点,凸包会折叠成一个线串;对于一个点,凸包是一个点。 envelope:返回一个GeoSeries,其中包含包含每个对象的点或最小矩形多边形(其边与坐标轴平行)的几何形状。...告诉数据集用的坐标系统,这里data.crs为WGS 84(经纬度) cx.add_basemap(ax, crs=data.crs, source

    3.6K41

    开发丨图像处理一定要用卷积神经网络?这里有一个另辟蹊径的方法

    目前,除了Google Earth之外,最方便也最经济的数据来源就是OSM(OpenStreetMap)开源地图计划。...而矢量数据结构是通过记录坐标的方式尽可能精确地表示点、线和多边形等地理实体,坐标空间设为连续,允许任意位置、长度和面积的精确定义。特点是定位信息明确,但属性信息隐含。...具体方法是:对比灾前和灾后两张图像,识别房屋的变化和两个图像的重叠部分,从而对受灾程度做出评估。...识别出受损房屋之后,借助灾前OSM数据库的帮助,还可以通过QGIS工具方便地导出每间受损房屋的地址列表信息。...另外,拉布拉斯滤波的这一优势在灾前建筑的识别上也得到了延续,其正常建筑的识别准确率高达97.9%,而相比之下CNN只有93%。

    1.4K90

    【DB笔试面试730】在Oracle中,如果需要修改网卡、子网、网段等信息,那么应该如何操作?

    在这种情况下,一旦公网信息被修改,则与其相关的VIP和SCAN VIP也必须修改。...(一)备份OCR和GPNP profile文件 在修改RAC的IP地址之前,我们需要先备份一下OCR文件,因为IP地址信息是记录在OCR中的,同时还要注意一点,从Oracle 11.2.0.2之后,private...如果在OS层面的网络修改后发生了节点或者集群管理软件重启,VIP将不会被启动,那么需要修改VIP和相关属性后才能启动VIP。 1....② 如果网卡在服务器上可用,则可以使用下面命令识别子网地址: $oifcfg iflist 它列出了网卡及子网地址,即使oracle集群没有启动,此命令也可以被执行。...#crsctl disable crs 4.使网络配置信息都已在OS层更改完成,确保更改完成后新的接口在所有的节点都可用有效: vi /etc/hosts #可以修改私网的主机名 ifconfig

    88130

    EOF分解原理及Python实现

    通过正交性,我们可以确保每个空间函数都捕捉了数据中的一个独特变化模式,而不会与其他模式重叠。这使得我们能够更容易地理解和解释数据中的变化。...EOF在某些文献中也被称为经验正交函数(EOF)主成分分析(PCA)。...向量与基变换 多个同类数据 → 一组向量 向量内积(即点乘) 基代数上,我们用线段的终点坐标表示向量,如上图的向量(4,2),但这样表示的前提是:以x轴和y轴上正方向长度为1的向量为标准。...基变换①原基向量(1,0)和(0,1)②构建新的基向量坐标空间,例如:③如何将原本在(1,0)和(0,1)为基向量的坐标空间的向量变换到新的空间呢?即该向量的坐标在新空间中是多少?...特征值和特征向量:方阵的特征值对应的特征向量就是理想中想取得的变换后的的坐标轴,特征值就等于数据在变换后的坐标上对应维度的方差。

    8610

    如何在 oracle 集群环境下修改私网信息 (文档 ID 2103317.1)

    在操作系统层更改 MTU 需要设定的值,确保更改后 MTU 值的私有网卡可用并且可以 ping 通集群中的所有节点。 3. 重启所有节点的集群管理软件。...如果网卡在服务器上可用,则可以使用下面命令识别子网地址: $ oifcfg iflist 它列出了网卡及子网地址,即使 oracle 集群没有启动,此命令也可以被执行。...校验更改后的值: $ oifcfg getif 3. 使用 root 用户关闭集群中所有的节点并禁用集群: # crsctl stop crs # crsctl disable crs 4....使网络配置信息都已在 OS 层更改完成,确保更改完成后新的接口在所有的节点都可用有效: $ ifconfig -a $ ping 5....如果 oracle 集群安装完成后需要更改网卡名字,则需要运行”oifcfg”命令来添加新的网卡并删除旧的。综上所述。 您可以运行下面命令查看每个节点上可用的网卡名字。

    2.1K20

    浅谈Oracle RAC(5)– CSS组件

    这里面需要强调的一个点是,发生节点排除时的条件必须是连续的丢失NHB。有些网络状态是时断时续的不稳定状态时,节点并不一定会被排除。...在启动的节点上更改misscount。 将步骤2中原本启动的节点重新启动。 启动在步骤1 中停掉的其它节点。 但是这里面需要非常注意的地方是,一般情况下misscount这个值不要轻易的去更改。...甲骨文官方也不会给出更改这个值的建议,misscount的初期值已经是甲骨文官方的最佳实践的值。如果客户不得不去更改这个值的时候,也必须在满足客户的SLA的情况下,在客户实机中进行充分的测试。 3....这些参数值同样也是可以通过crsctl set css命令进行更改,但是与misscount 一样,通常情况下甲骨文官方不会给出更改这些值的具体建议。...Voting file "string" will be considered not functional in "number" milliseconds 当超过半数的投票盘的IO丢失都达到了设定的

    1K30
    领券