Dstl Satellite Imagery Feature Detection-Data Processing Tutorial
如何读取WKT格式文件
我们找到了这些有用的包:
Python - shapely.loads()
R - rgeos
如何读取geojson格式文件
我们找到了这些有用的包:
Python - json, geojson, shapely (使用json,然后将其转换成shapely的复杂多边形)
R - geojsonio
如何将几何投影到像素坐标
在我们提供的数据集中,我们创建了一组地理坐标,它们在x = [0,1]和y = [-1.0]的范围内。 这些坐标被变换,使得我们模糊卫星图像被拍摄的位置。 图像来自地球上相同的区域。
为了利用这些图像,我们提供每个图像的网格坐标,以便您知道如何缩放它们并将它们与像素的图像对齐。 在grid_sizes.csv中,给出每个imageId的Xmax和Ymin值。
对于每个图像,您应该能够从图像栅格获取宽度(W)和高度(H)。 对于3391 x 3349 x 3的3波段图像,W为3349,H为3391.然后可以按如下方式缩放数据:

如何将的你结果转为多边形
最好使用cascaded_union()将多边形列表展开为不重叠的多边形。
缩放结果回到原来的坐标:

然后就很容易使用shapely来输出多边形到wtk格式文件:mulitpoly.wkt
如何在Python中打开GeoTiff文件
GDAL功能强大但有点难安装。如果你想去用它读取栅格文件,tifffile是一个轻量的打开GeoTiff文件的包。
例如,下面的代码你能读取16波段的图像:
import gdal
from gdalconst import * img_filename_16bandA = 'data/16band/6100_1_3_A.tif'
img_filename_16bandM = 'data/16band/6100_1_3_M.tif'
img_filename_16bandP = 'data/16band/6100_1_3_P.tif' datasetA = gdal.Open(img_filename_16bandA, GA_ReadOnly )
datasetM = gdal.Open(img_filename_16bandM, GA_ReadOnly )
datasetP = gdal.Open(img_filename_16bandP, GA_ReadOnly ) print 'Size is ',datasetA.RasterXSize,'x',datasetA.RasterYSize, \
'x',datasetA.RasterCount
print 'Size is ',datasetM.RasterXSize,'x',datasetM.RasterYSize, \
'x',datasetM.RasterCount
print 'Size is ',datasetP.RasterXSize,'x',datasetP.RasterYSize, \
'x',datasetP.RasterCount
输出:
Size is 136 x 134 x 8
Size is 848 x 837 x 8
Size is 3391 x 3348 x 1
或者你能属于tiffffile:
import tifffile as tiff
P = tiff.imread(img_filename_16bandP)
tiff.imshow(P)
打如何在R中打开Geo Tiff文件
感谢社区成员smota的提出:
library(raster)
raster_6044_4_4 <- raster("./data/three_band/6040_4_4.tif")
plot(raster_6044_4_4)
library(rgdal)
gdal_6044_4_4 <- readGDAL(paste0("./data/three_band/", '6040_4_4', ".tif"))
plot(gdal_6044_4_4)
处理图像:
devtools::install_github("ropensci/geojsonio")
library("geojsonio")
install.packages("rgdal", type = "source")
install.packages("rgeos", type = "source")
library("rgdal")
library("rgeos")
library(ggplot2)
grid_6010_4_4 <-geojson_read("./data/train_geojson/train_geojson/6010_4_4/Grid_6010.geojson", method = local, what= 'sp')
plot(grid_6010_4_4)
ggplot(grid_6010_4_4, aes(long, lat, group = group)) + geom_polygon()
获得Docker?
这个dockerfile应该能对Python使用者有帮助。
---本文译自:https://www.kaggle.com/c/dstl-satellite-imagery-feature-detection/details/data-processing-tutorial
Dstl Satellite Imagery Feature Detection-Data Processing Tutorial的更多相关文章
- pytorch例子学习-DATA LOADING AND PROCESSING TUTORIAL
参考:https://pytorch.org/tutorials/beginner/data_loading_tutorial.html DATA LOADING AND PROCESSING TUT ...
- Image Processing and Analysis_8_Edge Detection:Design of steerable filters for feature detection using canny-like criteria ——2004
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- Image Processing and Analysis_21_Scale Space:Feature Detection with Automatic Scale Selection——1998
此主要讨论图像处理与分析.虽然计算机视觉部分的有些内容比如特 征提取等也可以归结到图像分析中来,但鉴于它们与计算机视觉的紧密联系,以 及它们的出处,没有把它们纳入到图像处理与分析中来.同样,这里面也有 ...
- Image Processing and Computer Vision_Review:A survey of recent advances in visual feature detection(Author's Accepted Manuscript)——2014.08
翻译 一项关于视觉特征检测的最新进展概述(作者已被接受的手稿) 和A survey of recent advances in visual feature detection——2014.08内容相 ...
- Linux command line exercises for NGS data processing
by Umer Zeeshan Ijaz The purpose of this tutorial is to introduce students to the frequently used to ...
- Chrysler -- CCD (Chrysler Collision Detection) Data Bus
http://articles.mopar1973man.com/general-cummins/34-engine-system/81-ccd-data-bus CCD (Chrysler Coll ...
- [翻译]MapReduce: Simplified Data Processing on Large Clusters
MapReduce: Simplified Data Processing on Large Clusters MapReduce:面向大型集群的简化数据处理 摘要 MapReduce既是一种编程模型 ...
- Spring Data JPA Tutorial Part Nine: Conclusions(未翻译)
This is the ninth and the last part of my Spring Data JPA tutorial. Now it is time to take a look of ...
- SQL Server Reporting Services 自定义数据处理扩展DPE(Data Processing Extension)
最近在做SSRS项目时,遇到这么一个情形:该项目有多个数据库,每个数据库都在不同的服务器,但每个数据库所拥有的数据库对象(table/view/SPs/functions)都是一模一样的,后来结合网络 ...
随机推荐
- 《NoSQL精粹》读书笔记
NoSQL数据库数据模型的一般分类: 1. 键值数据模型 2. 文档数据模型 3. 列族数据模型 4. 图数据模型 常见NoSQL数据库: Redis, Cassandra, MongoDB, Neo ...
- 通过maven test 报org.apache.ibatis.binding.BindingException: Invalid bound statement
背景 直接使用eclipse工具去执行,没有问题,通过testng.xml去执行,没有问题,但通过mvn clean test执行,就报错,提示org.apache.ibatis.binding.Bi ...
- javaScript系列:JSON详解
JSON详解 JSON的全称是”JavaScript Object Notation”,意思是JavaScript对象表示法,它是一种基于文本,独立于语言的轻量级数据交换格式.XML也是一种数据交 ...
- Python之测试webservice接口
前段时间学习了Python操作http接口,觉得挺容易的.最近项目组也有接触webservice接口,心里想想是否Python也可以操作这类接口.于是利用伟大的度娘,花了6个小时研究出来了,所以迫不及 ...
- try...catch...finally语句块
try-catch-finally语句主要是用来处理检查异常,捕获并处理,以及最后必须要执行的finally块. try-catch-finally语句入门: 1.try-catch-finally语 ...
- Java-break,continue,return用法
当年的我也算是基础小王子,但是长时间的不用导致我与他们越来越陌生了,所以我要把他们记在我的本本上. 首先我们要明白,java中到底有多少个循环关键字? 答:没错,就是3个,他们分别是:for(初始值: ...
- JDK+Tomcat搭建JSP运行环境--JSP基础
一.搭建JSP运行环境之前需要了解的基本知识 配置JSP运行环境之前,我们需要了解JSP的运行机制.只有了解JSP运行机制后,我们才能知道为什么要搭建JSP运行环境?如何去搭建JSP运行环境?为什么要 ...
- 深入浅出数据结构C语言版(17)——有关排序算法的分析
这一篇博文我们将讨论一些与排序算法有关的定理,这些定理将解释插入排序博文中提出的疑问(为什么冒泡排序与插入排序总是执行同样数量的交换操作,而选择排序不一定),同时为讲述高级排序算法做铺垫(高级排序为什 ...
- Phpstorm中使用SFTP
Phpstorm中经常会出现FTP连接失败的问题,这个时候我们可以使用SFTP来连接服务器. 1.添加服务器.tools--deployment--configuration/browse Remot ...
- jQuery控制a标签不可点击 不跳转
jquery禁用a标签方法1 01 02 03 04 05 06 07 08 09 10 11 12 $(document).ready(function () { $("a ...