Spatial

茫茫宇宙,寻觅星辰

Python 中的Rasterio与Postgresql冲突

问题 Anaconda中的Rasterio使用过程中无法获取遥感影像的crs。 具体错误如下: CRSError: The EPSG code is unknown. PROJ: proj_create_from_database: SQLite error on SELECT name, coordinate_system_auth_name, coordinate_system_cod...

Open Data Cube 说明

本文记录 2023年Open Data Cube 安装过程及说明 datacube 1.8.17.dev2+g0cfe300d.d20231027 1 Install the Open Data Cube Software ODC 核心安装 ODC8.16 以后的版本要求python 3.10 建议直接安装Ubuntu 22,它自带的版本是Pyhon 3.10.12 按照Ubunt...

统计下载的卫星影像的时相和景数

从ESA的网站下载了Sentinel 2的数据,在撰写报告时会有统计不同时相的卫星影像景数的问题,Python结合Excel可以解决这个问题 步骤: 1 利用Python批量获取文件名, 保存至csv文件 import os import csv filelist=[] filelist1=[] def file_name(file_dir): for root, dirs, ...

利用CNBH-10m数据赋值建筑高度

思路 复旦大学生命科学学院GC3S团队生产发布了中国首套首套10米分辨率的建筑高度栅格数据(CNBH-10m),前一篇文章介绍了利用QGIS、ArcGIS与ENVI提取建筑数据,也介绍了建筑白膜数据赋高程值,二者结合,就可以实现建筑白膜赋高度数据。 问题 与DEM不同,建筑高度数据只有在建筑存在的地方有值,其他位置是NoData,如下图所示:绿色的框中的建筑多边形的中心点处建筑高度数据为空...

利用QGIS、ArcGIS与ENVI提取建筑数据

思路 利用QGIS及其插件下载天地图带建筑轮廓的电子地图,使用ENVI识别这些数据并导出为SHP格式,使用ArcGIS将锯齿状的数据修正为正常的建筑物边界数据。 申请天地图Key 登录天地图的网站,点击登录按钮登录天地图账号,如果没有账号可以点击注册,注册一个账号,登录账号,点击账号–>开发资源–>控制台—创建新应用,弹出对话框,填写便于识别的应用名称,从下拉框中选择行业类别及...

Blender加载天地图及建筑白膜

思路 Blender中的插件BlenderGIS可以加载Google、ESRI、BING等数据,通过修改代码,增加对天地图的支持,然后通过获取OSM建筑数据和OpenTopography SRTM 30m的数据获取建筑高程,最后生成白膜数据。 Blender 下载 建议下载版本为 2.8.3。可以直接从官网下载,点击历史版本,可以自由选择需要的版本。也可以通过分享的百度网盘下载。 Ble...

建筑白膜数据赋高程值

思路 建筑白膜数据为多边形面数据,赋高程值有两种方法: 方法一: 将面转点,根据点提取DEM数据中的高程数据,将提取的值赋给对应的多边形 方法二: 计算每个多面性区域的DEM数据的均值,将该值赋给对应的多边形。 方法一 1、通过 Add Field增加建筑白膜数据的高程字段Z。 2、通过Feature To Points 工具将建筑白膜数据转换为点,选中 Inside选项,保证点在...

MacOS下使用Anaconda和Pycharm配置R环境

安装前提 1、MacOS 10.15+(Intel) 2、Anaconda 3、PyCharm 2022.3 Anaconda 安装R环境 Pycharm下的R插件 R Language for IntelliJ 只支持R版本大于3.4的,Anaconda默认安装3.3版本的R,所以使用conda强制安装高版本的R。 通过以下命令可以在Anaconda中创建r4-base的虚拟环境,并安...

水动力模型堤防局部更新方法

二维模型分块建模 IFMS二维模型建模过程中,可能会遇到同一个模型被不同的人员进行修改,最后合并时无法准确的合并的问题。 情景1:在公共模型的基础上,人员A仅更新了区域1的堤防数据(边元),人员B仅更新了区域2的网格高程数据(单元)。此时,以人员B的模型为基础,将A修改的边元数据更新至B的模型。 1、边元更新数据导出 边元默认的高程值是-999,更新后的值>0,通过右键边元图层,选择...

Mac结束进程的方法

Linux / MacOS 结束运行中和挂起状态下的进程 jobs # 列出所有作业 jobs -r # 列出运行中的作业 jobs -s # 列出挂起的作业 执行以上任意一条命令,再执行下面的命令 kill %1 其中 %1 是从 jobs 命令中读取的作业数。 还可以使用 jobs -l 列出 pid,并像往常一样使用 kill 命令。 DEMO 1、通过命令行 ./pg_ti...