Spatial

茫茫宇宙,寻觅星辰

Geopandas过滤数据中文列名乱码问题

问题 SHP中保存数据时使用了中文列名,想用这个属性列过滤数据,但Geopandas读取列名不成功,导致过滤错误。 解答 读取的时候加上文件编码,UTF-8不行的话试一试GBK。 gdf = gpd.read_file(shapefile_path,encoding='gbk') 详细的代码如下: import geopandas as gpd import os # 读取Shap...

大区域长距离一维水动力模型是否存在问题

问题 抛给 GPT的问题:你是水动力建模方面的专家,我需要建一个流域长达 400千米的一维水动力模型,请问是否可行,并给出理由 解答 建立一个流域长达400千米的一维水动力模型是可行的,但需要考虑多个因素来确保模型的准确性和有效性。以下是一些关键因素和理由: 1. 模型的基本原则 一维水动力模型假设流体流动主要沿着流域的纵向方向(通常是河流或水道的中心线),忽略横向的流动变化。因此,模...

同一河段不同断面宽度的提取与处理方法

问题 如下图的河道,TKHN-0 和TKHN-1000处的两个断面同一宽度不合适,但如果分为两个河段会使得模型破碎。 如何通过断面提取程序结合GIS软件修改数据,使得不同位置的断面宽度不同? 思路 我们使用的断面提取软件只能设置一个宽度,如果需要设置多个宽度,需要多次修改宽度,基于某个宽度的xls文件修改断面信息,组合生成新的河段断面序列。这个断面提取软件很好的一点在于输出目录中的...

多波段卫星影像黑块修补方法

问题 使用BigeMap或其他软件下载影像时经常会遇到黑块现象,重新下载整幅影像会很慢,也不一定消除黑块,如何解决这一问题? 思路 下载一块小的区域,修补这个黑块。 方法 用GIS软件绘制黑块边界,可以稍大一点儿,重新下载这一区域的影像,确保有图像的部分完全覆盖黑块区域。 使用ENVI 的Band Math将旧数据和新数据的R、G和B波段,保存为单独的TIF。 使用ArcGIS 的R...

QGIS打开SHP中文乱码解决方法

问题 QGIS打开含有中文字符的文件乱码,而ArcMap打开此文件正常。 思路 是由于编码问题导致字符乱码,可以考虑修改字符编码为UTF-8或者GBK,需要尝试哪个可以用。 右键图层—->属性(Properities)—->源(Source)—>数据源编码(Data source Encoding),选择GBK,点击应用,然后重新打开该图层,即可看到正常的中文字符...

Python 中的proj.db冲突暂时解决方法

问题 以前遇到rasterio与PostgreSQL中proj.db冲突的时候,我选择了卸载PostgreSQL,详见文章Python 中的Rasterio与Postgresql冲突。文章中相当于删除了冲突的proj.db的版本。 但我们也不可能不用PostgreSQL数据库,怎么办呢? 思路 上述原因是 proj.db 版本不同造成的。我同学告诉我Raterio新版本使用的投影库是3....

Python某些包的安装

问题 解决某些包的安装问题 包 pydensecrf conda install conda-forge::pydensecrf tensorflow conda install Tensorflow=1.13 引用 1 关于解决pydensecrf安装失败问题(亲测可用)

Anaconda重装并恢复原先的虚拟环境

问题 不知道是因为装了CUDA还是其他原因,总之,Anaconda无法启动,问了GPT还是不行,最后只能问GPT重装怎么保存原先的虚拟环境。 步骤 1、如果在windows命令行运行 “conda –version” 无法成功,说明Path路径有问题,需要将Anaconda的路径添加到Path路径中。 添加以下三个路径(安装时选择了所有用户) C:\ProgramData\anacond...

PS常用的操作

问题 ArcMap出专题图时经常需要自己制作图标,一般图标为白色背景,需要自己抠图,将背景去掉。 出图时,图例能正常显示,但自定义的图标有时无法导出,需要自己PS 思路 PhotoShop解决。 PS CS5对于高清的jpg图无法打开,PS CC 2019可以打开200M以上的jpg 步骤 1、背景透明 使用PS打开图片,如下图所示。 找到图层属性,点击图层右边的锁,解除锁定。...

pandas df转dbf

问题 想把pandas中的DataFrame转为dbf数据格式,便于在GIS软件中与空间数据进行JOIN操作,网上搜了很多文章,推荐试用pysal、dbfread simpledbf和dbfpy的包,都无法实现dbf的创建,最后使用了dbf包实现了该功能。 思路 读取df的列名和类型,创建空dbf表,遍历读取df表写入dbf表。 代码 运行环境:Python 3.6.13 import...