Questions tagged «gdal»

GDAL(地理空间数据抽象库)是一个开放源代码翻译器库和一组命令行实用程序,用于处理栅格空间数据格式。作为一个库,它为所有受支持的格式向调用应用程序提供一个抽象数据模型。它还带有用于数据转换和处理的各种有用的命令行实用程序。

1
使用GDAL进行地理配准?
我有一个要尝试在Google Earth中覆盖的.tiff图像。为此,我需要先对其进行地理配准。图像投影是使用NAD83作为基准的UTM。我知道图像四个角的纬度/经度。 我正在做以下方式: gdalinfo获取四个坐标。 gdal_translate指定纬度/经度信息 gdal2tiles.py可以平铺图像。 唯一使我烦恼的是,我从未指定UTM和NAD83,那么它怎么会覆盖我的图像?有人知道如何指定此投影信息吗?

3
计算从gdal2tiles生成的单个图块的经度边界
我想使用同一张地图上显示的gdal2tiles生成多个图块源。因此,在显示图块时,我需要确定边界是从哪个来源提供的。 有人知道如何纯粹基于zoom,x和y(从gdal2tiles生成的文件结构)计算单个图块的纬度范围吗?顺便说一句:我正在使用Google Maps API v3,以防需要从API调用某些功能来帮助进行计算。 我只限于缩放,x和y的原因是,图块不仅会被地图上的叠加层调用,而且还具有一些自定义打印功能,可以在地图外进行打印。

3
使用GDAL从DEM生成轮廓?
我们刚刚收到了许多工作中的DEM,我想从中生成轮廓。DEM的分辨率为1m,大小为1kmx1km。 gdalinfo的输出: Driver: AAIGrid/Arc/Info ASCII Grid Files: 380000_6888000_1k_1m_DEM_ESRI.asc Size is 1000, 1000 Coordinate System is `' Origin = (380000.000000000000000,6888000.000000000000000) Pixel Size = (1.000000000000000,-1.000000000000000) Corner Coordinates: Upper Left ( 380000.000, 6888000.000) Lower Left ( 380000.000, 6887000.000) Upper Right ( 381000.000, 6888000.000) Lower Right ( 381000.000, 6887000.000) Center ( 380500.000, 6887500.000) Band …
16 raster  gdal  dem  contour 

3
如何使用gdal正确地对Web墨卡托瓷砖进行地理定位?
作为示例,我将使用以下图块http://a.tile.openstreetmap.org/3/4/2.png并将其保存为“ 4_2.png”。 这种瓷砖的WGS84坐标可以被计算或读取那里通过点击对应的瓦片: 0 66.51326044311185 45 40.97989806962013 (West North East South) 如何正确地对瓷砖进行地理参考(使用gdal生成地理坐标或其他地理参考格式),以便: 不需要拉伸位图(= Geotiff中的像素与原始位图中的像素完全相同) 生成的图像将在GIS查看器/编辑器中的正确位置打开(例如在TatukGIS Free Viewer中)? (于2011年9月19日编辑,以使我的问题更清楚并包括我的结论) 我的结论是: 我首先说第三个想法(见下文)是正确的。我在GIS Viewer中打开了Geotiff,并将显示的坐标与预期的坐标进行了比较。从第二个想法出来的Geotiff似乎向北移动了2个像素。这就是为什么我认为想法3(或4)是正确的原因。 但是,如果您尝试使用更高缩放级别的图块,则想法3之外的地标肯定会向南移动。在缩放级别3的图块上比较坐标是愚蠢的。在此缩放级别上的国家/地区边界被简化了,以致于比较不能给出良好的结果。 Dan S.是对的,图块的图像已经在EPSG:3857中。第二个想法就是正确的想法(并且在高缩放级别上也能提供良好的效果) 第一个想法:EPSG:4326 WGS84坐标的EPSG代码是EPSG:4326。因此,我仅使用WGS84坐标即可使用gdal_translate将瓷砖作为geotif进行地理参考: gdal_translate -of Gtiff -co tfw=yes -a_ullr 0 66.51326044311185 45 40.97989806962013 -a_srs EPSG:4326 4_2.png t4326.tif 生成的地图显示在正确的位置,但我担心投影不正确,并且瓷砖中间可能会有偏移。在尝试了很长时间以通过使用gdalwarp重新投影地图进行检查之后,我下载了Global Mapper的演示版,似乎是这种情况(与想法3相同的边框,但在磁贴内部发生了偏移)。应该拉伸图像以使用EPSG:4326坐标。 第二个想法:EPSG:3857 此图块使用“网络墨卡托”投影(即Google地图投影),现在具有EPSG代码:EPSG:3857(别名EPSG:900913)。我只是使用gdaltransform转换坐标: gdaltransform -s_srs EPSG:4326 -t_srs EPSG:3857 0 …
16 web-mapping  gdal  epsg  tiles 

2
使用GDAL和Python将投影的geoTiff转换为WGS84
如果以下问题有些愚蠢,我深表歉意,但是我对这整个GIS只是非常陌生。 我正在尝试使用python中的gdal将一些投影的geoTiff图像转换为WGS84。我发现了一篇帖子,概述了使用类似于以下内容的方法在投影的GeoTiff中转换点的过程: from osgeo import osr, gdal # get the existing coordinate system ds = gdal.Open('path/to/file') old_cs= osr.SpatialReference() old_cs.ImportFromWkt(ds.GetProjectionRef()) # create the new coordinate system wgs84_wkt = """ GEOGCS["WGS 84", DATUM["WGS_1984", SPHEROID["WGS 84",6378137,298.257223563, AUTHORITY["EPSG","7030"]], AUTHORITY["EPSG","6326"]], PRIMEM["Greenwich",0, AUTHORITY["EPSG","8901"]], UNIT["degree",0.01745329251994328, AUTHORITY["EPSG","9122"]], AUTHORITY["EPSG","4326"]]""" new_cs = osr.SpatialReference() new_cs .ImportFromWkt(wgs84_wkt) # create a transform object …

2
使用GDAL向现有的GeoTiff添加频段吗?
这似乎应该很简单,但是我无法一生解决。 给定一个包含单个波段的现有GeoTiff,如何将另一个波段添加到该GeoTiff?这样做的唯一方法是使用GDALCreate()创建具有附加波段的新输出文件,然后将现有波段从原始文件复制到新文件吗?这是我到目前为止提出的唯一解决方案,但似乎应该有一种简单的方法可以将波段添加到现有数据集中。
15 raster  gdal  band 

1
GDAL VRT格式-我了解这个概念吗?
好的,所以我对过去两个星期尝试的其他数据库中栅格解决方案有些厌倦,这些解决方案目前无法使用(PostGIS栅格)或无法处理我的数据量(Rasterlite),因此我正在阅读有关VRT格式的信息。忍受我,我想请你就此发表意见,如果我提出的建议完全有道理: VRT本质上是一个元数据XML文件,描述了实际栅格文件的各种属性,例如像素尺寸,地理位置等。 步骤1:我将所有GeoTIFF文件(不是真的,只是生成了VRT)转换为VRT。 现在,由于我看到可以合并VRT,因此我假设可以创建VRT元数据文件的镶嵌图,一个大的VRT可以容纳所有元数据。太好了,这意味着元数据将可能用于优化渲染,因为QGIS将决定(假设)哪些图块属于当前画布范围,而哪些则不属于... 步骤2:建立VRT镶嵌图 好的,现在我看到的下一个好处是,我只需要在QGIS目录中添加一个条目,就可以在其上设置不同的内容,例如比例缩放渲染和空数据值透明度(如果需要)。有人可能会争辩说,您可以简单地将GeoTIFF加载到QGIS中并将它们放在一个组中,这是真的,但是除了设置公共SRS之外,您对组没有任何控制权。 如果我想以较小的比例(大缩放比例)查看正射影像并且仍具有快速渲染的效果,那么我将重复此步骤,仅对原始栅格集进行重新采样,最后得到一些大的VRT数据集。 这有意义吗?:)
15 qgis  gdal  vrt 

4
使用GDAL平滑/重新插值栅格吗?
简短: 我想更改光栅的分辨率并平滑灰色渐变,如下面的图像所示。首选项是使用GDAL,PIL或Numpy。 说明: 我正在使用High Performance Geostatistical Library将该点克里格化为输出分辨率为20米的栅格。我不想更改输出分辨率,因为插值时间呈指数增长。 在这种分辨率下,输出图像很难看(像素化和混叠)。我不知道它在概念上是否正确,但是我希望图像像下面的示例一样更平滑。就像将图像“重新插值”为分辨率更高的图像一样。我正在使用python,因此我的偏好设置是GDAL,Python Imaging Library或Numpy。答案可能是理论上的,例如指出算法名称或这种操作的概念。 资源: 目的地: 使用gdalwarp三次样条的编辑结果:
15 python  raster  gdal 

2
使用GDAL获取shapefile的字段名称
我在Python中使用GDAL导入shapefile。我想知道文件的字段名称,我当前的方式是: fields = [] for i in range(1, layer.GetFeature(0).GetFieldCount()): field = layer.GetFeature(0).GetDefnRef().GetFieldDefn(i).GetName() fields.append(field) 但是通过这种方式,我得到了第一层的功能。这是否意味着不同的图层可能具有不同的功能? 如果不是,是否可以立即获取字段名称,而不是深入了解?如果是,是否有更简单的方法来获取字段名称?
15 python  shapefile  gdal 

3
Windows上的python中的gdal ImportError
尝试在Windows XP上为Python 2.7.3导入gdal: >>> import gdal Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\Python27\lib\site-packages\gdal.py", line 2, in <module> from osgeo.gdal import deprecation_warn File "C:\Python27\lib\site-packages\osgeo\__init__.py", line 21, in <mo _gdal = swig_import_helper() File "C:\Python27\lib\site-packages\osgeo\__init__.py", line 17, in swit_helper _mod = imp.load_module('_gdal', fp, pathname, description) ImportError: DLL …

2
使用GDAL在Python中按功能分割shapefile?
是否有可能在python中按功能分割一个shapefile?(最好是将临时生成的矢量对象临时保存到内存而不是磁盘的解决方案)。 原因:我想将gdal rasterizeLayer函数与shapefile的几个不同子集一起使用。该函数需要一个osgeo.ogr.Layer对象。 mkay,我尝试了一下,它可能如下工作。您可以按以下方式获取每个要素的gdal图层对象的几何形状。 # Load shape into gdal shapefile=str(vectorPath) layer_source = ogr.Open(shapefile) lyr = layer_source.GetLayer(0) for i in range(0,lyr.GetFeatureCount()): feat = lyr.GetFeature(i) ge = feat.geometry() 现在,我只需要知道如何基于此几何形状创建osgeo.ogr.layer对象。 为了澄清。我需要使用纯Ogr / gdal代码编写的函数!这似乎也引起了其他人的兴趣,我仍然希望没有任何辅助模块的解决方案(尽管来自此处的任何解决方案都将在免费的可用qgis插件中使用)。

2
如何使用GDAL命令行实用程序将QGIS生成的tiff图像转换为jpg / jpeg?
我想开发一个Web门户网站,以显示由QGIS动态生成的图像,但是QGIS提供的tiff图像太大,并且无法使用图像查看器在网站上显示它。这就是为什么我决定将这些tiff图片转换为jpg / jpeg以减小尺寸以及对浏览器友好的原因,以便可以轻松地在我的网站上显示这些图片。但是我不知道如何使用gdal命令将tiff图像转换为jpg / jpeg。 请在这方面帮助我。

2
如何在CentOS 7上安装GDAL 2.x而无需从源代码构建?
我试图在CentOS7上安装GDAL 2.X,而不用从源代码构建,因为我需要在另一台服务器上对其进行配置,并且通过源代码进行安装将是一项非常繁琐且耗时的任务。 我找到了一些仓库,例如opengeo和ELGIS,但它们是用于CentOS7的。在EPEL上,repo没有GDAL2.x。 [root@localhost ~]# yum repo-pkgs epel list gdal* (...) Available Packages gdal.x86_64 1.11.4-1.el7 @epel gdal-libs.x86_64 1.11.4-1.el7 @epel gdal-python.x86_64 1.11.4-1.el7 @epel gdal-devel.x86_64 1.11.4-1.el7 @epel gdal-doc.noarch 1.11.4-1.el7 @epel gdal-java.x86_64 1.11.4-1.el7 @epel gdal-javadoc.noarch 1.11.4-1.el7 @epel gdal-perl.x86_64 1.11.4-1.el7 @epel 版本1.11并不是1.x主要版本的最新版本。 是否可以从任何存储库或仅从源安装?如果不是,是否可以将其构建为易于在多台服务器之间安装的RPM?

3
gdalwarp和gdal_merge进行镶嵌有什么区别
我想合并约20个dem转换,每个约100MB,而我使用了gdalwarp(我知道虚拟文件选项): gdalwarp $(list_of_tiffs) merged.tiff 但是,此命令花费的时间很长,大约15分钟后,它正在处理集合中的第5张图像。我终止它。 然后,我发现gdal_merge.py脚本也可以用于镶嵌,并尝试了它: gdal_merge.py $(list_of_tiffs) 不到3分钟即可完成。 正如我期望的那样,两个命令将产生相同的结果,我想知道两者之间的区别是什么,如果结果相同,为什么gdalwarp需要这么多时间?

1
如何在PyPy中使用GDAL?
我正在尝试使用pypy优化我的python代码。虽然我能够导入大多数库并成功运行,但是我却无法导入GDAL库。在Python 2.7中导入时,相同的库运行良好。 我尝试将GDAL位置添加到PYTHONPATH,甚至尝试将GDAL Python绑定下载到PyPy目录,但是pypy不想识别GDAL,并且出现以下错误。 Traceback (most recent call last): File "app_main.py", line 51, in run_toplevel File "ImportENC-P.py", line 50, in <module> from osgeo import gdal, ogr, osr File "B:\PYPY\site-packages\osgeo\__init__.py", line 21, in <module> _gdal = swig_import_helper() File "B:\PYPY\site-packages\osgeo\__init__.py", line 13, in swig_import_helper import _gdal ImportError: No module named _gdal
14 python  gdal 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.