我一直试图找到一种时间有效的方法来合并R中的多个光栅图像.这些是来自乞力马扎罗山南部地区的相邻ASTER场景,我的目标是将它们组合在一起以获得一个大图像.
这是我到目前为止所得到的(对象'ast14dmo'代表RasterLayer对象列表):
# Loop through single ASTER scenes
for (i in seq(ast14dmo.sd)) {
if (i == 1) {
# Merge current with subsequent scene
ast14dmo.sd.mrg <- merge(ast14dmo.sd[[i]], ast14dmo.sd[[i+1]], tolerance = 1)
} else if (i > 1 && i < length(ast14dmo.sd)) {
tmp.mrg <- merge(ast14dmo.sd[[i]], ast14dmo.sd[[i+1]], tolerance = 1)
ast14dmo.sd.mrg <- merge(ast14dmo.sd.mrg, tmp.mrg, tolerance = 1)
} else {
# Save merged image
writeRaster(ast14dmo.sd.mrg, paste(path.mrg, "/AST14DMO_sd_", z, "m_mrg", sep = ""), format = "GTiff", overwrite = TRUE)
}
}
Run Code Online (Sandbox Code Playgroud)
正如你猜测的那样,代码可行.但是,考虑到每个单个栅格对象大约70 …
我使用Synthetic Aperture Radar卫星的非常大的数据集.这些可以被认为是一侧10k像素量级的高动态范围灰度图像.
最近,我一直在开发Lindeberg尺度空间脊检测算法的单尺度变体的应用,用于检测SAR图像中的线性特征.这是对使用方向滤波器或使用Hough变换的改进,这两种方法以前都使用过,因为它的计算成本低于其中任何一种.(我将在4月份的JURSE 2011上展示一些最新成果,如果有帮助,我可以上传预印本).
我目前使用的代码生成一个记录数组,每个像素一个,每个记录描述矩形到像素右下角的一个脊段,并由相邻的像素限定.
struct ridge_t { unsigned char top, left, bottom, right };
int rows, cols;
struct ridge_t *ridges; /* An array of rows*cols ridge entries */
Run Code Online (Sandbox Code Playgroud)
在一个条目ridges
包含脊段如果正好有两个的top
,left
,right
并bottom
具有范围值0 - 128.假设我有:
ridge_t entry;
entry.top = 25; entry.left = 255; entry.bottom = 255; entry.right = 76;
Run Code Online (Sandbox Code Playgroud)
然后我可以找到脊段的开始(x1,y1)和结束(x2,y2):
float x1, y1, x2, y2;
x1 = (float) col + (float) entry.top / 128.0;
y1 = (float) …
Run Code Online (Sandbox Code Playgroud) c scalability image-processing feature-detection satellite-image
我正在寻找海洋大型卫星场景中的船只.我成功地应用于matterport的面膜RCNN安装卫星图像的小的子集,但它是分析像世界观庞大的图像太慢.我正在寻找可以做边界框的快速的东西,在python中,在Keras中实现,并且理想地优化(或者有很好的文档以便我可以优化它)用于卫星图像.有什么建议?
我找到了几个有希望的线索:
我可能会根据YOLT论文的建议,尝试在Keras中自定义RetinaNet的这种实现卫星图像,但是会喜欢其他建议!
python object-detection satellite-image keras convolutional-neural-network
你知道我可以免费获得地方卫星图像的任何图像吗?
我有一个地形编辑器,它使用GIS数据可视化高度图,但我想用卫星图像对它们进行纹理处理.
我希望你们中的一些人能提供一些资料吗?
我正在尝试绘制海面温度数据并添加彩色的陆地图像,以使数据不会与混淆NAs
。我尝试了多种方法来执行此操作,但是正如您将在下图中看到的那样,地图相对于数据未正确对齐。
为使此问题可重现,这是指向我正在使用的文件的保管箱的链接:https : //www.dropbox.com/s/e8pwgmnhvw4s0nf/sst.nc4?dl=0
library(ncdf4)
library(raster)
library(mapdata)
library(mapproj)
library(rgeos)
library(ggplot2)
Run Code Online (Sandbox Code Playgroud)
eight = nc_open("Downloads/sst.nc4")
sst = ncvar_get(eight, "sst")
sst = raster(sst)
sst = t(flip(sst, 1)) # have to orient the data properly
# extract the dimensions and set the extent
lat.min = min(eight$dim$lat$vals)
lat.max = max(eight$dim$lat$vals)
lon.min = min(eight$dim$lon$vals)
lon.max = max(eight$dim$lon$vals)
sst = setExtent(sst, ext = c(lon.min, lon.max, lat.min, lat.max))
# provide proper projection
crs(sst) = "+init=epsg:4326"
# convert raster to points
sst.p <- rasterToPoints(sst) …
Run Code Online (Sandbox Code Playgroud) 我有一个3712x3712像素大小的地球静止eumetsat卫星图像.地球周围有一些黑色,因此图像看起来像这样:
对于地球的每个像素,我想得到它的荒芜和经度.我知道有pyproj,我能够像这样实例化一个投影:
sat = pyproj.Proj('+proj=geos +lon_0 +h=035785831.0 +x_0=0 +y_0=0')
Run Code Online (Sandbox Code Playgroud)
但歌厅像素的latlon(使用sat(x,y,inverse=True)
这里x
和y
在图像中的像素点坐标),显然是不可能的,因为投影不知道我的图像尺寸(3712x3712).
我错过了什么?
我想获取栅格(卫星图像)数据,并构建一个Dataset
orDataArray
来加速我的图像处理(我必须经常处理多波段、多日期的卫星图像)。
数据是每个图像日期的单独波段,我了解如何将每个波段日期转换为 xarray- DataArray
。我认为每个波段都有一个变量是最有意义的,并且在每个波段内都有空间 (x, y) 和时间维度。
但是,我无法弄清楚如何做到这一点。
我一直在与一些虚拟乐队合作试图解决这个问题,因此将包括在内以澄清我的数据是什么样子以及我正在尝试做什么。
# Set up dummy 3 x 3 array
dA = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]])
# Create 4 dummy images; 2 bands for each of 2 dates (using bands 4 and 5,
# because they're useful for vegetation measures)
d1_b4 = xr.DataArray((dA + 140),
coords={'x': ['1', '2', '3'], 'y': ['a', 'b', 'c']}, dims=('x', 'y'))
d1_b5 = xr.DataArray((dA + 150),
coords={'x': ['1', '2', …
Run Code Online (Sandbox Code Playgroud) 许多问题看起来与我的相似,但我无法找到适合的答案.
到目前为止,我使用了令人敬畏的R传单(和ggmap)包:
library(ggmap)
library(leaflet)
coord <-geocode('New York')
map.city <- leaflet() %>%
addTiles('http://{s}.tile.thunderforest.com/transport/{z}/{x}/{y}.png?apikey=68c4cd328d3b484091812a76fae093fd') %>%
setView(coord$lon, coord$lat, zoom = 11)
Run Code Online (Sandbox Code Playgroud)
但是,如果我想将谷歌卫星作为地图呢?
我仔细阅读了这篇文章
但不明白如何使用那里定义的googleSat函数.
我在尝试获得 Sentinel 3 图像的月平均值时遇到了一些麻烦……一切,真的。Python,Matlab,我们两个人都陷入了这个问题。
主要原因是这些图像的信息不是在一个单独的 netcdf 文件中,而是整齐地与坐标和产品放在一起。相反,它们都位于一天文件夹内的单独文件中,作为 不同的 .nc 文件,每个文件包含有关一张卫星图像的不同信息。据我了解,SNAP 使用 xmlxs 文件来处理所有这些单独的 .nc 文件。
现在,我认为尝试合并和创建/编辑 .nc 文件以创建一个新的每日 .nc 文件是一个好主意,其中包括叶绿素、坐标以及时间。后来,我会合并这些新的,以便能够使用 xarray 计算每月平均值。至少这是我的想法,但我无法完成第一部分。这可能是一个明显的解决方案,但是这是我尝试使用 xarray 模块的方法
import os
import numpy as np
import xarray as xr
import netCDF4
from netCDF4 import Dataset
nc_folder = df_try.iloc[0] #folder where the image files are
#open dataset in xarray
nc_chl = xr.open_dataset(str(nc_folder['path']) + '/' + 'chl_nn.nc') #path to chlorophyll file
nc_chl
n_coord =xr.open_dataset(str(nc_folder['path'])+ '/'+ 'geo_coordinates.nc') #path to coordinates file
n_time = xr.open_dataset(str(nc_folder['path'])+ '/' + 'time_coordinates.nc') …
Run Code Online (Sandbox Code Playgroud) 我正在用高分辨率图像(高于 8GB)训练卫星模型。我生成较小的补丁来处理巨大的图像。使用与训练补丁大小不同的补丁大小进行推理是否正确?
exp: 训练patch大小为512*512
推理补丁大小为2048*2048(它减少了处理时间,结果看起来不错)
*不调整大小
satellite-image image-segmentation deep-learning conv-neural-network semantic-segmentation
我正在研究 envi 格式的高光谱图像。我已经使用 Spectrum Python 库成功读取了它。现在,我想获得每个波段(波长中心)。请建议执行此任务的方法。
satellite-image ×11
python ×4
r ×3
geospatial ×2
raster ×2
c ×1
convolutional-neural-network ×1
envi ×1
geocoding ×1
ggmap ×1
gis ×1
google-maps ×1
keras ×1
leaflet ×1
merge ×1
netcdf ×1
proj ×1
projection ×1
rasterio ×1
scalability ×1
xarray ×1