展开

关键词

裁剪

默认是在原的坐标系下的xmin ymin xmax ymax,当然我们也可以使用-te_srs参指定-te参所在的坐标系。 为什么不推荐gdalwarp命令呢? 这是因为gdalwarp命令只提供了根坐标系的范围进行裁剪,而不支持根行列号的裁剪。这时候我们可以求助于gdal_translate命令。 gdal_transalte命令即支持使用-srcwin参指定行列号范围xoff yoff xsize ysize,也支持使用-projwin参指定原坐标系下的范围ulx uly lrx lry ,起点为第10行第10列,输出大小为255times255,输出式为TIFF。 注意这行命令有一个-a_scale 1参,这个参指定了裁剪过程不要对DN值进行缩放。如果不加这个值得话,输出图像的DN值会被根的Scale=10000放大10000倍。

80950

裁剪

默认是在原的坐标系下的xmin ymin xmax ymax,当然我们也可以使用-te_srs参指定-te参所在的坐标系。为什么不推荐gdalwarp命令呢? 这是因为gdalwarp命令只提供了根坐标系的范围进行裁剪,而不支持根行列号的裁剪。这时候我们可以求助于gdal_translate命令。 gdal_transalte命令即支持使用-srcwin参指定行列号范围xoff yoff xsize ysize,也支持使用-projwin参指定原坐标系下的范围ulx uly lrx lry ,起点为第10行第10列,输出大小为256$times$255,输出式为TIFF。 注意这行命令有一个-a_scale 1参,这个参指定了裁剪过程不要对DN值进行缩放。如果不加这个值得话,输出图像的DN值会被根的Scale=10000放大10000倍。

65121
  • 广告
    关闭

    云产品限时秒杀

    云服务器1核2G首年38元,还有多款热门云产品满足您的上云需求

  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    式转换

    查看GDAL支持的式我们可以在终端中使用gdal --formats命令查看安装的GDAL库支持的式Supported Formats: VRT -raster- (rw+v): Virtual 我们以将GeoTIFF式转为IMAGE式为例,说明如何使用命令行工具进行式转换:gdal_translate -of HFA example.tif example.img其中,of选项指示了输出式 ,HFA代表的是Erdas Imagine Images ,example.tif是输入路径,example.img是输出路径详细参参考:gdal_translate使用Python代码进行式转换下面介绍两种进行转换的方式 Dataset对象,后面都是可选参,具体Translate()函的参可以参见:GDALOGR Python API使用CreateCopy()方法进行的复制及式转换 from osgeo import gdal # 打开文件 src_ds = gdal.Open(example.tif) # 获得驱动对象 driver = gdal.GetDriverByName(HFA) # 进行式转换

    81830

    投影转换

    使用GDAL提供的命令行工具进行转换GDAL提供了gdalwarp命令可以方便地让我们进行影像拼接,重投影,裁剪,式转换等功能比如,我们需要将MODIS的Sinusoidal投影转为UTM投影,我们可以这样操作 ,可以是EPSG,或者OGC WKT,或者PROJ4式,后面分别是输入和输出文件名)使用代码进行转换使用命令行转换,当然有两种方法啦:第一,直接在代码中调用命令行工具的接口(比较懒的人,像我, .hdf)# 返回结果是一个list,list中的每个元素是一个tuple,每个tuple中包含了对集的路径,元等的描述信息# tuple中的第一个元素描述的是子集的全路径ds_list = root_ds.GetSubDatasets() # 取出第1个子集(MODIS反射率产品的第一个波段)进行转换# 第一个参是输出,第二个参是输入,后面可以跟多个可选项gdal.Warp :放射变换使用如下的公式表示图上坐标和地理坐标的关系: Xgeo=GT(0)+Xpixel∗GT(1)+Yline∗GT(2)Ygeo=GT(3)+Xpixel∗GT(4)+Yline∗GT(5)Xgeo

    75430

    创建与保存

    思路与方法使用Python进行处理,很多时候,我们会将GDAL的Dataset对象转化为NumPy的ndarray对象,这样我们可以使用很多通用的Python库对进行处理,然后再借助GDAL 不同于普通的二进制文件,空间的写需要注意两点:的投影信息(确定了平面坐标系)的地理坐标信息(确定了图像在给定坐标系下的位置)在GDAL中,我们首先需要创建Dataset对象,然后给Dataset : 文件路径 :param np_array: ndarray组 :param driver: 文件式驱动 :param prototype: 文件原型 :param xsize: 图像的列 :param 具体实现如下:# 打开集ds = gdal.Open(example.tif) # example.tif有三个波段,分别是蓝,红,近红外 # 获取集的一些信息x_size = ds.RasterXSize # 图像列y_size = ds.RasterYSize # 图像行 proj = ds.GetProjection() # 返回的是WKT式的字符串trans = ds.GetGeoTransform

    56211

    使用Rasterio读取

    Rasterio是基于GDAL库二次封装的更加符合Python风的主要用于空间处理的Python库。 Rasterio中模型基本和GDAL类似,需要注意的是:在Rasterio 1.0以后,对于GeoTransform的表示弃用了GDAL风的放射变换,而使用了Python放射变换的第三方库affine 读取代码示例下面的示例程序中演示了如何读取一个GeoTIFF文件并获取相关信息,需要注意的是:rasterio使用rasterio.open()函打开一个文件rasterio使用read( import rasterio with rasterio.open(example.tif) as ds: print(该的基本集信息(这些信息都是以集属性的形式表示的):) print 那么如何得到对应点左上角的信息 x, y = (row, col) * ds.transform print(f行列号({row}, {col})对应的左上角投影坐标是({x}, {y}))输出如下:该的基本集信息

    61320

    使用Rasterio创建

    方法描述使用Rasterio创建并写入比GDAL还简单一些,基本使用到两个函:rasterio.open()write()在open()函当中,我们可以像GDAL中的Create()方法一样 ,设置类型,尺寸,投影定义,仿射变换参等一系列信息另外,Rasterio中的集提供了一个profile属性,通过该属性可以获取这些信息的集合,这样我们读取源文件的时候获得该属性,然后对源进行处理 import rasterioimport numpy as np # 读入的是绿,红,近红外波段的合成with rasterio.open(LC08_122043_20161207.tif) as src: raster = src.read() # 读取所有波段 # 源的元信息集合(使用字典结构存储了式,类型,尺寸,投影定义,仿射变换参等信息) profile = src.profile + raster) ndvi = 0 ndvi = np.nan_to_num(ndvi) # 写入 profile.update( dtype=ndvi.dtype, count=1 ) 也可以在

    63820

    PostGIS导入导出

    上一篇博文PostGIS导入导出ESRI Shapefile介绍了如何导入空间矢量到PostgreSQL中,紧接上一篇,本文将介绍如何使用PostGIS导入导出空间。 PostGIS提供了raster2pgsql工具用于的导入(可以使用man raster2pgsql命令查看帮助文档)。 可以看到有一个rid和rast的列,rid是以一个整形对插入的进行的标示,rast列的类型是raster存储了具体。----如果想要导出,可以使用PostGIS提供的内置函。 此外,还有ST_AsPNG,ST_AsJPEG和ST_AsTIFF等函,提供了直接导出到指定式,并且接受更少的参。 注意:PostGIS的默认导出GDAL支持的是关闭的,启用的话需要修改PostgreSQL的配置文件。修改的方法比较多,而且不同的PostgreSQL版本的支持情况不一样。

    1.8K20

    PostGIS批量导入

    如果我们有一批以文件存储的影像如何利用PostGIS批量的导出到PostgreSQL库中进行管理呢? (单个的导入参见我上篇博文:PostGIS导入导出)我的实验环境如下: OS: Ubuntu 16.04 LTS PostgreSQL:9.5.5 PostGIS: 2.2 我的实验是全球气象 (不过,我只下载了中国部分19区的平均气温(TIF式)做示例演示) 下载网址:http:www.worldclim.orgtiles.php 下载好的进行解压可以看到包含了12个月的平均气温 -F参在关系表中增加名为filename的列用于保存原始文件的名称,这在我们进行Tile的合并的时候很有用。 ? 进入库可以查看我们导入的表 ? ST_AsTIFF上一篇中我们已经使用过,用于将PostgreSQL中的raster类型导出为TIFF式对应的bytea类型,而ST_Union对于来说,用于将分块的影像重新拼接为完整的一副影像

    79520

    利用Sql处理MR

    工作中需要处理MR,原始关键列类似这个样子: ?要处理成这个样子(内主服务小区CGI中可能包含50多个CGI,只提取前15个)? 原始文件有100多个,一共有1000多万行,而且原始列特别多,大概几十列吧,合并成多个excel大文件也能搞,就是操作起来太费劲,这种活最合适采用库或者python干了,今天咱们就来看看sql如何实现合并原始文件关于合并 csv文件的工作,之前有文章写过,本文就不再赘述,参考这篇文章即可 利用Python批量合并csv库导入合并后文件使用navicat可以方便快速的导入csv文件,这里要特别注意的是:文件导入时默认所有字段均为 varchar(255)类型,注意修改内主服务小区CGI字段类型为text、MR总点为int、RSRP SELECT SUBSTRING_INDEX(www.mysql.com, ., 2); `内主服务小区采样点量`,;;;;;;;;;;;;;;),;,15),;,-1) as 小区15采样点量FROMmr-- end --感觉有收获的话,帮忙点个赞呗

    27010

    打开的正确方式

    以一个简单例子说明如何打开影像下面的例子打开一副GeoTIFF影像,输出了影像的一些信息,然后遍历了所有波段,输出波段的一些信息import gdal # 打开集ds = gdal.Open (example.tif) # 获得的一些重要信息print(f投影信息:{ds.GetProjection()})print(f波段:{ds.RasterCount})print(f (宽度):{ds.RasterXSize})print(f(高度):{ds.RasterYSize}) # 获取集的元信息metadata = ds.GetMetadata_Dict() :3(宽度):4800(高度):4800AREA_OR_POINT -> Area类型:Int16NoData值:-28672.0统计值(最大值最小值):(-435.0, 6134.0 (相当于第一种转换)import gdal # 打开集ds = gdal.Open(example.tif)# 在集层面转换image = ds.ReadAsArray() print(f的尺寸

    42720

    Python-matplotlib 空间可视化

    处理 本次的tif需要用到专门的库进行读取,即使用gdal进行tif读取(gdal不仅包括tif读取,还包括投影转换、地理信息读取等功能,也是处理空间最常用的python库,如果只是单单读取 tif文件,tifffile等包也能很好处理)。 我们还可以获取这副tif如 地理信息、投影信息等,这也是处理空间用的最多的集系列。 获取,用到如下代码: #获取对应的tif_data01 = tifdata01.ReadAsArray(0,0,samples,lines)tif_data01,tif_data01.shape 总结 这算是空间可视化绘制的第一篇推文了,感谢我的同学“小太阳”提供的

    2.1K11

    利用Python进行MR处理

    昨天用sql处理了MR,今天研究下python如何实现合并原始文件合并多个原始csv文件可以参考这篇文章 利用Python批量合并csv这里直接给出代码import pandas as pdimport 为起点pandas列转换先定义空的dataframedf2 = pd.DataFrame(columns=) 合并列df2 = df.iloc + _ + df.iloc转换列df 中RSRP-110)

    30020

    读取HDF或者NetCDF式的

    式以及HDF库API等一系列技术的总称. HDF的最新版本是HDF5.HDF模型基于组(groups)和集(datasets)概念:如果把HDF比作磁盘,那么组相当于文件夹,集相当于文件。 组和集都有用户自定义的属性(attributes).MODIS影像,以及我国的风云卫星都适用HDF式进行存储.NetCDFNetCDF(Network Common Data Format)由 NetCDF式不陌生,接触到的大部分都是这种式.HDF和NetCDF集特点HDF和NetCDF都可能包含子集(一个文件中包含多个子文件),我们需要找出需要的子集,然后就可以像普通的 式的

    51421

    geotrellis使用(二十七)色彩渲染

    今天我们就接着上一篇文章中的处理(权且将色彩渲染归结到处理中)来介绍一下如何在Geotrellis中为渲染漂亮的色彩。 二、复杂原因及思路分析       普通地理信息系统处理的对象都是单幅图像,当我们打开单幅图像的时候程序很容易获取到关于此,包括元信息、波段信息、值域范围等等,我理解的色彩渲染就是读出图像的值域范围将其分段对应到相应的色彩即可 而当我们采用分布式处理框架之后,面对的不再是单幅图像,而是一层或一种(Geotrellis中将存储在Accumulo中的按照导入名称进行分层管理),而其读取的时候也不再是读取整个,而是单一瓦片或者部分 3.1 整体信息       简单的说就是将研究区域与整体做空间判断,取出研究范围内的,然后统计此范围内信息。 四、总结       本文简单为大家介绍了如何实现的色彩渲染,复杂的问题经过分析之后貌似也不是那么复杂,但是这些都要经过一步步探索、反复思索才能找到方案,所以作为一个程序员也不能仅仅关注代码,更应该多理理自己的思路

    61850

    灰度化并前端转换展示

    概述对于,为提升网络的传输效率,通过一定的计算公式将压缩成一个灰度图,在通过客户端进行解析渲染是常见的一种手段。本文将结合canvas实现此功能。 效果测试测试来源于ventusky上的温度图,渲染的色标也用了该网站上面的。 ); }) 绘制渐变色条 ctx.fillStyle = linearGradient; ctx.fillRect(0, 0, canvas.width, canvas.height); 读取像素 ); }) 绘制渐变色条 ctx.fillStyle = linearGradient; ctx.fillRect(0, 0, canvas.width, canvas.height); 读取像素

    6930

    Google Earth Engine谷歌地球引擎矢量裁剪

    本文主要对GEE中依矢量裁剪的操作加以介绍。 该是美国普查局(United States Census Bureau)发布的2018年主要合法边界划分,简单来说就是划分美国各州郡县级地理实体的矢量边界。?   点击名称即可查看其信息,例如可以看到其“Name”字段为郡县级地理实体的名称。?  点击“IMPORT”将这一导入GEE。?  依前述推文中方法,对这一矢量加以重命名。?   接下来,我们基于上述堪萨斯州郡县对Landsat 8加以裁剪。首先将Landsat 8重命名。? 1,2020-4-30).mean().clip(kansas);Map.addLayer(landsat_8_mon_kansas);   可以看到,具体的裁剪操作其实非常简单,只需要在得到的求取平均后的后添加

    30150

    Google Earth Engine谷歌地球引擎ee.Image基本处理

    本文主要对GEE中的ee.Image图层基本处理操作加以介绍。 在Google Earth Engine谷歌地球引擎可视化代码嵌入中,我们介绍了在Map.addLayer()函中对图层可视化参进行配置的方法:Map.setCenter(116.36863 执行代码,可以看到这种基于字典形式的参输入方式与Google Earth Engine谷歌地球引擎可视化代码嵌入中采用的参输入方式效果是一致的。   此外,Google Earth Engine谷歌地球引擎可视化代码嵌入中还介绍了将全部可视化参首先存储于一个独立的参中,随后在Map.addLayer()函中调用这一独立参的方法;这一点本文就不再赘述 其中,.buffer()函的详细介绍请参考Google Earth Engine谷歌地球引擎直方图与时间序列图绘制;.clip()函的详细介绍请参考Google Earth Engine谷歌地球引擎矢量裁剪

    11630

    geotrellis使用(十五)使用Bokeh进行可视化统计

    (见http:www.cnblogs.comshoufengweip5722360.html),其实当时选择Bokeh的部分原因就是Bokeh支持大量的可视化,有点“大”的意思,总之这刚好能与Geotrellis 结合起来进行一些地理信息方面的大可视化统计工作。        1.读取       首先要将导入到Accumulo中,layoutScheme选择floating,这一块介绍过多次了,不再赘述。        WheelZoom | Crosshair)BokehHelper.plotBasic(plot)BokehHelper.setCircleGlyph(plot, x, y, source)plot.title(分析 三、总结       看似对高程进行统计分析、可视化没有太大的意义,这里介绍的其实只是一种思路、方法,我们可以对任意的进行上述操作,如土壤、水域、资源环境等等,所以思想高于一切。

    59970

    GDAL获取各个像素对应的经纬度(Python版)

    这里要使用的一个比较重要的函是GetGeoTransform函,GDAL官网的API中对GetGeoTransform的解释如下: CPLErr GDALDataset::GetGeoTransform dataset.GetGeoTransform() # 左上角地理坐标print(adfGeoTransform)print(adfGeoTransform) nXSize = dataset.RasterXSize #列nYSize = dataset.RasterYSize #行 arrSlope = for j in range(nXSize): px = adfGeoTransform + i * adfGeoTransform

    3.1K30

    扫码关注云+社区

    领取腾讯云代金券