gdal

解决GDAL中文乱码问题--转载

戏子无情 提交于 2020-05-07 18:39:12
转自: https://blog.csdn.net/jiaowoyege/article/details/46119003?locationNum=10 我在使用此文中方法虽然解决了属性乱码问题,但是编码为CP936以后字段名就无法新建成中文的,字段名必须为英文。否则无法创建shp,具体原因正在寻找中。 最近在JAVA上调用GDAL来对矢量数据进行操作,中文字段和中文属性值的乱码问题困扰已经,又要被老杜说没进展啦。。。苦不堪言啊!!!!好在经过这个早上的倒腾,终于给他怼出来了。在JAVA环境下怎么配置GDAL随手百度一发吧,我就不废话了。直接贴代码: package shapefileProcess; import java.io.UnsupportedEncodingException; import org.gdal.gdal.gdal; import org.gdal.ogr.DataSource; import org.gdal.ogr.Feature; import org.gdal.ogr.FeatureDefn; import org.gdal.ogr.FieldDefn; import org.gdal.ogr.Layer; import org.gdal.ogr.ogr; import org.gdal.osr.SpatialReference; import

使用GDAL/OGR读写矢量文件

我的梦境 提交于 2020-05-07 18:34:52
感觉GIS中矢量相关内容还是挺庞杂的,并且由于版本迭代的关系,使用GDAL/OGR读写矢量的资料也有点不太一样。这里总结了一个读写矢量的示例,实现代码如下: #include <iostream> #include <gdal/ogrsf_frmts.h> using namespace std; bool ReadDXF(string filePath, vector<vector<OGRPoint>>& vertexPoint) { GDALDataset *poDS = (GDALDataset*)GDALOpenEx(filePath.c_str(), GDAL_OF_VECTOR, NULL, NULL, NULL); if (!poDS) { printf("无法读取该文件,试检查格式是否正确!"); return false; } if (poDS->GetLayerCount()<1) { printf("该文件的层数小于1,试检查格式是否正确!"); return false; } OGRLayer *poLayer = poDS->GetLayer(0); //读取层 poLayer->ResetReading(); OGRFeature *poFeature; while ((poFeature = poLayer->GetNextFeature()) !=

GDAL读取Shp问题解决:Unable to open EPSG support file gcs.csv

烂漫一生 提交于 2020-05-07 18:32:41
在GIS软件的开发中,经常用到开源库GDAL读取Shp数据,当shp数据中包含投影信息时,可能会遇到“Unable to open EPSG support file gcs.csv”错误提示,该错误是由于没有设置“GDAL_DATA”引起的。 1.Shpefile文件组成 Shapefile文件指的是一种文件存储的方法,实际上该种文件格式是由多个文件组成的。其中,要组成一个Shapefile,有三个文件是必不可少的,它们分别是".shp", ".shx"与 ".dbf" 文件。表示同一数据的一组文件其文件名前缀应该相同。例如,存储一个关于湖的几何与属性数据,就必须有lake.shp,lake.shx与 lake.dbf三个文件。而其中“真正”的Shapefile的后缀为shp,然而仅有这个文件数据是不完整的,必须要把其他两个附带上才能构成一组完 整的地理数据。除了这三个必须的文件以外,还有八个可选的文件,使用它们可以增强空间数据的表达能力。所有的文件名都必须遵循MS DOS的8.3文件名标准(文件前缀名8个字符,后缀名3个字符,如shapefil.shp),以方便与一些老的应用程序保持兼容性,尽管现在许多新的程序都能够支持长文件名。此外,所有的文件都必须位于同一个目录之中。 必须的文件: .shp — 图形格式,用于保存元素的几何实体。 .shx — 图形索引格式。几何体位置索引

关于GDAL读写Shp乱码的问题总结

隐身守侯 提交于 2020-05-07 09:07:51
[TOC] 1. 正文 最近在使用GDAL读写Shp格式中的属性字段的时候也遇到了中文乱码的问题,总结下自己遇到的情况。 1.1. shp文件本身的编码的问题 应该是由于shp格式加入了对宽字符的支持,所以导致有段时间的shp文件和ArcGIS是存在不匹配的问题,所以在网上搜索资源的时候遇到了大量的关于ArcMap显示shp属性表出现乱码的问题。现在的shp格式的文件应该已经稳定下来了,新添加了一个.cpg的文件,里面保存着属性表的编码格式:<div align=center> <div>图1-1:shp格式的.cpg文件</div></div> 从ArcGIS10.2开始,只要是属性表编码与.cpg文件记录的编码方式一致,就不会再有显示乱码的问题。网上查询到的修改注册表的方法,我在ArcGIS10.2中试过,似乎已经不再起效了。 那么对于没有.cpg或者的情况,应该可以看属性表.dbf文件。如果编码方式正确,这个文件用文本编辑器打开是可以看到正常的中文的:<div align=center> <div>图1-2:shp格式的.dbf文件</div></div> 在正常显示中文情况下,可以查看下文件的编码方式:<div align=center> <div>图1-3:查看编码方式</div></div> 当然,如果遇到乱码,可以尝试用别的编码方式打开

windows下安装geopandas

走远了吗. 提交于 2020-05-02 18:18:57
在linux下没任何问题,直接 pipenv install geopandas, 各种依赖库该编译的编译,该依赖的依赖。 win下pyproj4编译不过,而且gdal库什么的也都是问题,建议全部从 https://www.lfd.uci.edu/~gohlke/pythonlibs/ 下载对应py版本编译好的whl python 3.8.1 x64 1 gdal GDAL- 3.0.2 -cp38-cp38-win_amd64.whl 2 fiona Fiona- 1.8.13 -cp38-cp38-win_amd64.whl 现在已经支持gdal 3.0 3 pyproj pyproj-2.4.2.post1-cp38-cp38-win_amd64.whl 4 shapely Shapely‑1.6.4.post2‑cp38‑cp38‑win_amd64.whl #----------------------------------------------------- python 版本3.7 x64 安装顺序与版本 1 gdal:2.4.1 目前不能装 3.0 否则在 import fiona的时候,报错: ImportError: DLL load failed: 找不到指定的模块。 原因是:目前fiona1.8.6和gdal 3.0在win下不兼容。所以gdal只能装2

(数据科学学习手札74)基于geopandas的空间数据分析——数据结构篇

落花浮王杯 提交于 2020-05-02 16:14:02
本文对应代码已上传至我的 Github 仓库 https://github.com/CNFeffery/DataScienceStudyNotes 1 简介    geopandas 是建立在 GEOS 、 GDAL 、 PROJ 等开源地理空间计算相关框架之上的,类似 pandas 语法风格的空间数据分析 Python 库,其目标是尽可能地简化 Python 中的地理空间数据处理,减少对 Arcgis 、 PostGIS 等工具的依赖,使得处理地理空间数据变得更加高效简洁,打造纯 Python 式的空间数据处理工作流。本系列文章就将围绕 geopandas 及其使用过程中涉及到的其他包进行系统性的介绍说明,每一篇将尽可能全面具体地介绍 geopandas 对应方面的知识,计划涵盖 geopandas 的 数据结构 、 投影坐标系管理 、 文件IO 、 基础地图制作 、 集合操作 、 空间连接与聚合 。   作为 基于geopandas的空间数据分析 系列文章的第一篇,通过本文你将会学习到 geopandas 中的 数据结构 。    geopandas 的安装和使用需要若干依赖包,如果不事先妥善安装好这些依赖包而直接使用 pip install geopandas 或 conda install geopandas 可能会引发依赖包相关错误导致安装失败,官方文档中的推荐安装方式为

geopandas安装问题记录:ImportError,DLL load failed-windows10

北慕城南 提交于 2020-05-02 16:13:46
[toc] 1. 起因 由于最近在处理遥感影像、空间矢量数据需要自己写代码实现,就决定用Ananconda在windows10上配置一个地理科学计算的Python环境,在安装 geopandas 时遇到了一些问题。 什么是geopandas? <table><tr><td bgcolor=#DCDCDC> GeoPandas是一个开源项目,Pandas是Python的一个结构化数据分析的利器,GeoPandas扩展了pandas使用的数据类型,允许对几何类型进行空间操作,DataFrame相当于GIS数据中的一张属性表,使得可以直接操作矢量数据属性表,其目标是使得在python中操作地理数据更方便。</td></tr></table> 使用pip在Linux和Mac上安装geopandas可能很简单。然而由于它的几个依赖包都有C扩展,直接安装会导致在Windows上编译失败,最终安装失败。安装geopandas之前需要先安装依赖项 GDAL , Fiona , pyproj , rtree 和 shapely 。 2. 解决办法 环境:Windows 10 64位 可以使用conda安装(简单),也可以使用pip安装(麻烦些) (1). 使用Anaconda(带有大量科学计算包的发行版Python)安装 这种方法比较简单,尤其是只想快速搭建环境的数据科学处理人员

Cesium之3D拉伸显示行政区

大兔子大兔子 提交于 2020-05-01 05:07:59
转自原文 Cesium之3D拉伸显示行政区含GeoJSON数据生成过程GDAL的ogr2ogr Cesiumjs 是一套javascript库,用来渲染3D地球,2D区域地图,和多种GIS要素。不需要安装任何插件就能在支持最新HTML5标准的浏览器上运行。支持WebGL硬件加速,非常适合动态数据在GIS图层上的展示,是一个跨平台,开源,非常有前途的webgis表现层库。Cesium 基于 Apache 开源协议,支持商业和非商业免费使用。 背景: Cesiumjs源自 Analytical Graphics, Inc. (AGI) 公司为他们客户开发一个虚拟地球项目,后来将 cesium 项目贡献给开源社区并一直活跃开发中。是一种针对 Cesium- 应用的流式高分辨率服务器)另一个公司级的贡献者是 NICTA (NationalICT Australia) 澳大利亚最大的信息与通讯技术中心, NICTA 的员工们贡献了瓦片地图服务、地形处理等 cesium 的核心功能。并一直使用 cesium 开发环境监测分析、交通基础设施建模仿真优化等领域的应用。 Demo需求,想要将北京市行政区划内的要素,用3D表现出来,首先,需要得到北京16个区的面坐标: Cesium通过GeoJSON(JSON格式)格式的数据展示空间要素,因此,需要得到此种格式的北京行政区划坐标,通过研究

Qt+QGis二次开发:加载栅格图层和矢量图层

丶灬走出姿态 提交于 2020-04-28 08:07:25
一、加载栅格图像 加载栅格图像的详细步骤在下面代码里: // 添加栅格数据按钮槽函数 void MainWindow::addRasterlayers() { // 步骤1:打开文件选择对话框 QString filename=QFileDialog::getOpenFileName( this ,tr( " 打开栅格数据 " ), "" , " remote sensing image(*.tif *.tiff);;image(*.jpg *.jpeg *.png *.bmp) " ); if (filename.isNull()) // 如果未选择文件则返回 return ; QFileInfo fi(filename); QString basename =fi.baseName(); // 获取栅格数据名称 // 步骤2:创建QgsRasterLayer类 QgsRasterLayer* rasterLayer= new QgsRasterLayer(filename,basename, " gdal " , false ); if (!rasterLayer->isValid()) // 如果图层不合法 { QMessageBox::critical( this , " error " , " 图层无效! " ); return ; } // 步骤3:注册添加栅格数据

CentOS7 安装Postgresql 11+ 源码编译安装Postgis-2.5.2

落爺英雄遲暮 提交于 2020-04-28 08:07:13
####安装Postgresql-11 yum install zlib-devel gcc make groupadd postgres useradd -g postgres postgres passwd postgres mkdir -p /usr/local/postgresql chown -R postgres:postgres /usr/local/postgresql cd /usr/local/src/ wget https://ftp.postgresql.org/pub/source/v11.3/postgresql-11.3.tar.gz tar -xzvf postgresql-11.3.tar.gz cd postgresql-11.3 ./configure --prefix=/usr/local/postgresql --without-readline make && make install #安装contrib目录下的一些工具,是第三方组织的一些工具代码,建议安装 cd contrib make && make install #初始化数据库 initdb -D /data/postgresql/data #启动服务 pg_ctl -D /data/postgresql/data -l /var/postgresql/logfile