软件研究之GDAL

标签: 无 分类: 未分类 创建时间:2023-08-16 02:29:40 更新时间:2024-11-23 10:24:26

前言

gdal是一个GIS中非常重要的软件。

1.MacOS

gdal就是地理处理数据库,在windows上可以通过 OSGeo4w 进行安装,时间还是挺长的。

1
2
3
4
5
# 安装
brew install gdal

# 查看安装,输出:GDAL 3.7.1, released 2023/07/06
gdalinfo --version
参考文章:
1.MAC下安装GDAL库 问题1:当输入sudo -s 获得超级用户。问题2:当更新homebrew时候,在终端中输入brewupdate命令。
2.mac gdal安装 1.在mac系统中安装gdal类库。2.安装Python gdal模块。
3.mac gdal安装 也可以通过conda安装:conda install -c conda-forge gdal

2.Windows

(1) 去官网下载 安装包 然后进行安装就可以了。

(2) 选择Advanced Install安装,

一路next配置之后,选择需要安装的包,选择gdal-filegdb,把前面的选择框打岔就可以了。

(3) 安装完gdal-filegdb之后,返回安装界面,选择 Express 安装,选择 GDAL进行安装,不进行这一步,就不会出现 ogr 命令

(3) 安装之后,会在桌面生成文件夹,里面有 OSGeo4W Shell ,打开就可以了。

3.使用

安装之后,可以使用ogr2ogr 命令将 gdb 数据库导入都postgis中。

1
ogr2ogr -f "PostgreSQL" PG:"host=localhost port=5432 user=postgres password=xxx dbname=yyy" D:/data/geodata.gdb -overwrite -progress --config PG_USE_COPY YES

4.正射影像

4.问题

为了将arcmap的文件地理数据导入到postgis中,使用了OSGeo4W这个工具,安装方法可见我的另一篇文章:文章标题(可选),这次的主要问题是,在使用ogr2ogr命令行时,出现了不知道的错误。

还有这种错误:

问题的解决,主要是通过成功安装了postgis。以前没有成功安装过postgis,安装完postgre之后,在安装postgis,执行create extension postgis;就会报:无法加载库 “C:/Program Files/PostgreSQL/10/闪电b/rtpostgis-2.5.dll” 的错误,也就是不能创建空间数据库。

这个问题主要是postgis的版本和postgre版本不一致所造成的,但是我下载的版本都是再管网下的,pg11,我就去postgis文件夹的pg11文件夹下载2.5.2版本,结果还是不行。最后,是通过别人安装成功的软件,安装了pg10 +postgis 2.4.4(管网没有这个版本的下载)。安装完postgre和postgis之后,最后再执行用OSGeo4W这个工具将gdb导入到postgis就可以了。

小额赞助
本人提供免费与付费咨询服务,感谢您的支持!赞助请发邮件通知,方便公布您的善意!
**光 3.01 元
Sun 3.00 元
bibichuan 3.00 元
微信公众号
广告位
诚心邀请广大金主爸爸洽谈合作
每日一省
isNaN 和 Number.isNaN 函数的区别?

1.函数 isNaN 接收参数后,会尝试将这个参数转换为数值,任何不能被转换为数值的的值都会返回 true,因此非数字值传入也会返回 true ,会影响 NaN 的判断。

2.函数 Number.isNaN 会首先判断传入参数是否为数字,如果是数字再继续判断是否为 NaN ,不会进行数据类型的转换,这种方法对于 NaN 的判断更为准确。

每日二省
为什么0.1+0.2 ! == 0.3,如何让其相等?

一个直接的解决方法就是设置一个误差范围,通常称为“机器精度”。对JavaScript来说,这个值通常为2-52,在ES6中,提供了Number.EPSILON属性,而它的值就是2-52,只要判断0.1+0.2-0.3是否小于Number.EPSILON,如果小于,就可以判断为0.1+0.2 ===0.3。

每日三省
== 操作符的强制类型转换规则?

1.首先会判断两者类型是否**相同,**相同的话就比较两者的大小。

2.类型不相同的话,就会进行类型转换。

3.会先判断是否在对比 null 和 undefined,是的话就会返回 true。

4.判断两者类型是否为 string 和 number,是的话就会将字符串转换为 number。

5.判断其中一方是否为 boolean,是的话就会把 boolean 转为 number 再进行判断。

6.判断其中一方是否为 object 且另一方为 string、number 或者 symbol,是的话就会把 object 转为原始类型再进行判断。

每日英语
Happiness is time precipitation, smile is the lonely sad.
幸福是年华的沉淀,微笑是寂寞的悲伤。