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)都是一模一样的,后来结合网络 ...
随机推荐
- thinkphp 中英文网站详解
thinkphp 制作中英文网站的两种方法 一,在网站程序里增加语言脚本,设置整站自动翻译. 二,在原有的页面制作新的模板,在新的页面编辑网站, 优缺点: 一:优点.........就是不用多次添加内 ...
- java集合判断
java开发中经常需要做集合判断,在这里mark一下,加强记忆 为空判断: null == applyList || applyList.size() ==0 非空判断: applyList != n ...
- 2017多校第10场 HDU 6171 Admiral 双向BFS或者A*搜索
题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=6171 题意: 给你一个高度为6的塔形数组,你每次只能将0与他上下相邻的某个数交换,问最少交换多少次可以 ...
- 如何使用 flannel host-gw backend?- 每天5分钟玩转 Docker 容器技术(62)
flannel 支持多种 backend,前面我们讨论的是 vxlan,host-gw 是 flannel 的另一个 backend,本节会将前面的 vxlan backend 切换成 host-gw ...
- 从yum提示空间不足到根分区扩容
记录一次安装软件的报错 --1261065212@qq.com 1.系统版本(VMware 虚拟机) [root@ansible-admin ~]# cat /etc/redhat-r ...
- Struts2.5 利用Ajax将json数据传值到JSP
AJAX +JSON=>JSP AJAX AJAX 是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术. 通过在后台与服务器进行少量数据交换,AJAX 可以使网页实现异步更新.这意味着 ...
- 简述C/C++调用lua中实现的自定义函数
1.首先说下目的,为什么要这么做 ? 正式项目中,希望主程序尽量不做修改,于是使用C/C++完成功能的主干(即不需要经常变动的部分)用lua这类轻量级的解释性语言实现一些存在不确定性的功能逻辑:所以, ...
- 移动端踩坑之旅-ios下fixed、软键盘相关问题总结
最近一个项目掉进了移动端的大坑,包括ios下fixed布局,h5唤起键盘等问题,作为一个B端程序员,弱项就是浏览器的兼容性和移动端的适配(毕竟我们可以要求使用chrome),还好这次让我学习了一下相关 ...
- 初遇.net
初遇.net 为了自己的理想我选择了.net课程进行自我提升,想想以后能成为一位程序猿不由得有点兴奋呢,还有另一件高兴的事是我认识了十几位来自不同区县的老师同学,都说人脉就是财富,是不是我的财富有多了 ...
- Linux的netstat查看端口是否开放见解(0.0.0.0与127.0.0.1的区别)
linux运维都需要对端口开放查看 netstat 就是对端口信息的查看 # netstat -nltp p 查看端口挂的程序 [root@iz2ze5is23zeo1ipvn65aiz ~]# n ...