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波段的图像:
1 import gdal 2 from gdalconst import * 3 4 img_filename_16bandA = 'data/16band/6100_1_3_A.tif' 5 img_filename_16bandM = 'data/16band/6100_1_3_M.tif' 6 img_filename_16bandP = 'data/16band/6100_1_3_P.tif' 7 8 datasetA = gdal.Open(img_filename_16bandA, GA_ReadOnly ) 9 datasetM = gdal.Open(img_filename_16bandM, GA_ReadOnly ) 10 datasetP = gdal.Open(img_filename_16bandP, GA_ReadOnly ) 11 12 print 'Size is ',datasetA.RasterXSize,'x',datasetA.RasterYSize, 13 'x',datasetA.RasterCount 14 print 'Size is ',datasetM.RasterXSize,'x',datasetM.RasterYSize, 15 'x',datasetM.RasterCount 16 print 'Size is ',datasetP.RasterXSize,'x',datasetP.RasterYSize, 17 '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:
1 import tifffile as tiff 2 P = tiff.imread(img_filename_16bandP) 3 tiff.imshow(P)