看来R中的光栅包不区分GeoTIFF的正旋转和负旋转.我感觉这是因为R忽略了旋转矩阵中的负号.我不够精通,无法深入挖掘raster源代码进行验证,但我确实创建了一个可重现的示例来演示问题:
阅读R徽标并另存为GeoTIFF.
library(raster)
b <- brick(system.file("external/rlogo.grd", package="raster"))
proj4string(b) <- crs("+init=epsg:32616")
writeRaster(b, "R.tif")
Run Code Online (Sandbox Code Playgroud)
使用Python向tiff添加旋转
import sys
from osgeo import gdal
from osgeo import osr
import numpy as np
from math import *
def array2TIFF(inputArray,gdalData,datatype,angle,noData,outputTIFF):
# this script takes a numpy array and saves it to a geotiff
# given a gdal.Dataset object describing the spatial atributes of the data set
# the array datatype (as a gdal object) and the name of the output raster, and rotation …Run Code Online (Sandbox Code Playgroud) 我正在使用GeoTiff相关文件,想知道什么是一个好的观众,看到我的工作成果?它需要在Windows机器上工作.
谢谢.
我有一个光栅堆栈,stk由R中的三个光栅图像组成.这是一个简单的例子
# set up a raster stack with three layers
> library(raster)
> r <- raster(nrows=10,ncols=10)
> r[] <- rnorm(100)
> stk <- stack(r,r,r)
# layer names are set by default
> names(stk)
[1] "layer.1" "layer.2" "layer.3"
Run Code Online (Sandbox Code Playgroud)
我为栅格图层指定了名称:
# set layer names to "one", "two" and "three"
> names(stk) <- c('one','two','three')
> names(stk)
[1] "one" "two" "three"
Run Code Online (Sandbox Code Playgroud)
当我使用以下命令将RasterStack写入GeoTiff(多层)时:
writeRaster(stk,"myStack.tif", format="GTiff")
Run Code Online (Sandbox Code Playgroud)
根据文件名重命名图层(见> names(stk)下文).
当我读入光栅堆栈时:
> stk <- stack("myStack.tif")
# the layer names have been set automatically based …Run Code Online (Sandbox Code Playgroud) 我需要保存一个 3 波段 geotiff 到文件中。我目前正在使用 rasterio,当我去写出 3 波段图像时,出现错误Source shape (1, 3445, 4703, 4) is inconsistent with given indexes 1。
我的最终目标是能够对图像执行一些分析并将其写入文件。
我已经尝试reshape_as_raster过并且reshape_as_image. 我尝试了一些其他组合以及 .transpose(arr, (0,1,2))
https://rasterio.readthedocs.io/en/stable/topics/image_processing.html#imageorder
with rio.open(r"C:\Users\name\Documents\project\name.tif") as src:
naip_data = src.read()
naip_meta = src.profile
image = reshape_as_raster(naip_data)
with rio.open('C:\\Users\\name\\Documents\\UAV_test_save\\filename.tif', 'w',**naip_meta) as dst:
dst.write(image, 3)
Run Code Online (Sandbox Code Playgroud)
我希望在文件中保存一个 geotiff。相反我得到:
rasterio._io.DatasetWriterBase.write() 中的 ValueError rasterio_io.pyx
ValueError:源形状 (1, 3445, 4, 4703) 与给定索引 1 不一致
我开始在我的应用程序中使用gdal_csharp dll并读取geotiff文件.但它说:
The type initializer for 'OSGeo.GDAL.GdalPINVOKE' threw an exception.
Run Code Online (Sandbox Code Playgroud)
这是我的代码
string fileName = @"/path to geotiff file";
OSGeo.GDAL.Dataset DS =
OSGeo.GDAL.Gdal.Open(fileName, OSGeo.GDAL.Access.GA_ReadOnly);
Run Code Online (Sandbox Code Playgroud)
有人可以帮忙吗?
编辑:
我有这些dll

这是完整的错误消息:

它说不能加载gdal_wrap.但是,当我要将dll添加到我的应用程序时,会显示以下消息:

我正在尝试将MODIS 17数据文件读入R,操纵它们(裁剪等),然后将它们保存为geoTIFF.数据文件.hdf格式化,似乎没有一种简单的方法将它们读入R.
与其他主题相比,没有很多建议,其中大部分都是几年之久.其中一些还建议使用其他程序,但我想坚持使用R.
人们用什么包来处理.hdfR中的文件?
我想编写一个GEOTIFF,其中包含Java中的所有地理元数据.哪个库等最适合此目的?
我有5个numpy形状nx,ny
lons.shape = (nx,ny)
lats.shape = (nx,ny)
reds.shape = (nx,ny)
greens.shape = (nx,ny)
blues.shape = (nx,ny)
Run Code Online (Sandbox Code Playgroud)
红色,绿色和蓝色数组包含的值范围为0-255,lat/lon数组是纬度/经度像素坐标.
我的问题是如何将这些数据写入geotiff?
我最终想用底图绘制图像.
这是我到目前为止的代码,但是我得到一个巨大的GeoTIFF文件(~500MB),它出现空白(只是一个黑色图像).另请注意,nx,ny = 8120,5416.
from osgeo import gdal
from osgeo import osr
import numpy as np
import h5py
import os
os.environ['GDAL_DATA'] = "/Users/andyprata/Library/Enthought/Canopy_64bit/User/share/gdal"
# read in data
input_path = '/Users/andyprata/Desktop/modisRGB/'
with h5py.File(input_path+'red.h5', "r") as f:
red = f['red'].value
lon = f['lons'].value
lat = f['lats'].value
with h5py.File(input_path+'green.h5', "r") as f:
green = f['green'].value
with h5py.File(input_path+'blue.h5', "r") as f:
blue = f['blue'].value
# convert …Run Code Online (Sandbox Code Playgroud) 我有一个没有TIFF格式的地理数据的图像(地图).
我需要从我的图像中获取GeoTIFF文件.我的地图的每个角都有纬度和经度.如何在Google空间网关中将我的地理数据添加到我的图片中以获取地理位置?我知道GDAL可以帮助我.任何人都可以帮我建立一个命令
我正在尝试创建一个虚拟光栅(VRT文件),它连接了大量的GeoTIFF栅格.
我gdalbuildvrt在Windows 7环境中使用命令.以下是使用的语法.
gdalbuildvrt -input_file_list C:\listing.txt -srcnodata 0 -resolution average O:\mosaicB.vrt
Run Code Online (Sandbox Code Playgroud)
该文件listing.txt包含我要处理的TIF文件的完整路径名.mosaicB.vrt是输出文件.
前几行listing.txt是:
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069632FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069633FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069634FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069635FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069636FN.tif
C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000069638FN.tif
Run Code Online (Sandbox Code Playgroud)
该命令运行了很长一段时间,但最终,我收到警告,最后是一个空的输出文件.我确实得到以下错误,这些错误无限期重复
ERROR 4: 'C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087496FN.tif' not recognised as a supported file format.
Warning 1: Can't open C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087496FN.tif. Skipping it
ERROR 4: 'C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087497FN.tif' not recognised as a supported file format.
Warning 1: Can't open C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087497FN.tif. Skipping it
ERROR 4: 'C:\TileCam_GeoTIFF_mosaicb\tf_1422848977_0000087498FN.tif' not recognised as a supported file format.
Run Code Online (Sandbox Code Playgroud)
不知道从哪里开始.我有管理员权限,所以这不是权限问题.这些是16位GeoTIFF文件,可在所有GIS程序中读取.我很感激这里的任何帮助.