Questions tagged «clip»

通过另一个数据集的范围或边界来限制或减少一个数据集的范围。


2
在R中裁剪栅格
我正在为美国东北部绘制地图。地图背景必须是海拔图或年平均温度图。我有来自Worldclim.org的两个栅格,这些栅格为我提供了这些变量,但是我需要将它们裁剪到我感兴趣的州的范围。有关如何执行此操作的任何建议。这是我到目前为止所拥有的: #load libraries library (sp) library (rgdal) library (raster) library (maps) library (mapproj) #load data state<- data (stateMapEnv) elevation<-raster("alt.bil") meantemp<-raster ("bio_1.asc") #build the raw map nestates<- c("maine", "vermont", "massachusetts", "new hampshire" ,"connecticut", "rhode island","new york","pennsylvania", "new jersey", "maryland", "delaware", "virginia", "west virginia") map(database="state", regions = nestates, interior=T, lwd=2) map.axes() #add …
33 raster  r  clip  maps 

5
通过R中的许多多边形提高裁剪,遮罩和提取栅格的速度?
我正在从基于数千个多边形边界的栅格中提取不同土地利用类型的面积和覆​​盖率。我发现,如果我遍历每个单独的多边形并进行裁剪,然后将栅格蒙版减小到特定多边形的大小,则提取功能的运行速度会更快。尽管如此,它的运行速度很慢,我想知道是否有人对提高我的代码效率和速度有任何建议。 我发现与此相关的唯一的事情就是这个响应由Roger Bivand使用谁建议GDAL.open(),并GDAL.close()作为以及getRasterTable()和getRasterData()。我研究了这些内容,但过去在gdal上遇到过麻烦,并且对它的了解不够深,不知道如何实现它。 可重现的示例: library(maptools) ## For wrld_simpl library(raster) ## Example SpatialPolygonsDataFrame data(wrld_simpl) #polygon of world countries bound <- wrld_simpl[1:25,] #name it this to subset to 25 countries and because my loop is set up with that variable ## Example RasterLayer c <- raster(nrow=2e3, ncol=2e3, crs=proj4string(wrld_simpl), xmn=-180, xmx=180, ymn=-90, ymx=90) …


2
如何在Python中读取shapefile?
我的问题是多边形shapefile中垂直线的扩展。请先参考该问题。 您将看到的是一种以用户定义的间距相对于边界框生成垂直线的方法。我知道OGR,Fiona,Shapely等可用于下一步剪切,但我不了解它们的使用情况。 如何读取多边形shapefile的一行?每个使用Shapely的应用程序都显示了如何生成LineString,Point或Polygon,但是从不读取现有shapefile 请至少为我提供一个骨架结构,以便我可以在其上进行构建。

4
Rasterfile裁剪错误:无法计算切割线的边界框
我有一个光栅文件,想对其进行裁剪,一个矢量文件应该是遮罩层。我使用最明显的方法(Raster-> Extraction-> Clipper)。无论我做什么,都会收到此错误(请参见下图): 无法计算切割线的边界框 我尝试过更改栅格格式,更改投影等。当然,我也在旧帖子/ Google中进行了研究。我不知道如何解决这个问题。如果我按扩展进行剪辑,它确实可以工作。 奇怪的是,我记得三个月前做了同样的方法,但没有得到这个错误。 我也(而不是针对此错误的解决方案)欢迎使用另一种方法来执行此操作。我只需要按照所述剪辑一个光栅文件。有人可以帮忙吗?
22 qgis  raster  clip 

4
在R中裁剪简单要素对象
是否有用于裁剪sf映射对象的函数,类似于maptools::pruneMap(lines, xlim= c(4, 10), ylim= c(10, 15))用于SpatialPolygon或SpatialLine的函数? 我正在考虑,st_intersection()但是可以有适当的方法。
20 r  clip  sf 

2
使用QGIS裁剪栅格图层?
如何在QGIS中裁剪栅格图层? 我想从图层的一部分制作轮廓,包括整个图层将创建比我需要的数据更多的数据,并且减慢了渲染速度。 我发现可以通过使用栅格计算器并指定新的图层范围来做到这一点,但是我如何知道要为行和列输入哪些值? 我也尝试在Photoshop中裁剪该geotiff,但似乎丢失了坐标数据。 有什么方法可以从栅格图层的一部分创建轮廓而不必先裁剪吗?

2
如何使用R中的多边形图层执行多边形图层的真实GIS剪辑?
我想使用一系列单边界多边形在土壤多边形的R中创建一个真正的GIS剪辑,但是我找不到能够正确执行此操作的R函数。它应该像clipESRI的ArcMap中的功能一样工作。我已经尝试过该over方法在sp包中,但它似乎不适用于多边形而不是多边形。 一种建议是使用以下代码将gIntersectionin rgeos包用作剪辑: #------------------------------------ library(rgeos) library(maptools) #Read layers as SpatialPolygonsDataFrame (both the same Albers projection) Soils_poly = readShapePoly("Soils_polygons") #Note - Has 400 polygons clipper_poly = readShapePoly("clipper_polygon") #Note - Has 1 polygon #Try gintersection as clip Clipped_polys = gIntersection(Clipper_Tile_poly, Soils_poly) #----------------------------------- 这需要5分钟才能运行(速度太慢),并且会出现以下错误: RGEOSBinTopoFunc中的错误(spgeom1,spgeom2,byid,id,drop_not_poly,“ rgeos_intersection”):TopologyException:在-721459.77681285271 2009506.5980877089中找不到传出的dirEdge 我还尝试了以下代码来检查是否重叠: gIntersects(Clipper_Tile_poly, Soils_poly) 结果为TRUE。clipESRI ArcMap中的函数对此数据可以正常工作。 有人知道R函数可以使用空间多边形对空间多边形进行适当的剪辑吗?
16 r  polygon  layers  vector  clip 

3
在PyQGIS中并行进行GIS操作?
GIS中的一个常见要求是将处理工具应用于多个文件,或者将一个文件中多个特征的处理应用于另一个文件。 这些操作中的许多操作都是令人尴尬地并行的,因为计算结果绝不会影响循环中的任何其他操作。不仅如此,而且输入文件通常每个都是不同的。 一个典型的例子就是将形状文件与包含多边形的文件进行平铺。 这是一个(经过测试的)经典过程方法,可通过QGIS的python脚本实现。(将临时内存文件输出为真实文件的时间比处理我的测试文件的时间减少了一半以上) import processing import os input_file="/path/to/input_file.shp" clip_polygons_file="/path/to/polygon_file.shp" output_folder="/tmp/test/" input_layer = QgsVectorLayer(input_file, "input file", "ogr") QgsMapLayerRegistry.instance().addMapLayer(input_layer) tile_layer = QgsVectorLayer(clip_polygons_file, "clip_polys", "ogr") QgsMapLayerRegistry.instance().addMapLayer(tile_layer) tile_layer_dp=input_layer.dataProvider() EPSG_code=int(tile_layer_dp.crs().authid().split(":")[1]) tile_no=0 clipping_polygons = tile_layer.getFeatures() for clipping_polygon in clipping_polygons: print "Tile no: "+str(tile_no) tile_no+=1 geom = clipping_polygon.geometry() clip_layer=QgsVectorLayer("Polygon?crs=epsg:"+str(EPSG_code)+\ "&field=id:integer&index=yes","clip_polygon", "memory") clip_layer_dp = clip_layer.dataProvider() clip_layer.startEditing() clip_layer_feature …

1
通过线shapefile剪切多边形shapefile
我有两个shapefile,一个多边形shapefile(湖)和一个线shapefile(boudary),我想创建一个新的shapefile“边界北边的多边形” 我可以在QGIS或其他免费GIS中使用什么工具来完成此任务?
15 qgis  polygon  line  clip 

4
在FME中,是否有一种方法可以将多个输入要素类型从阅读器连接到单个变压器?
在FME中,是否可以将多个读取器连接到单个变压器?我正在使用FME 2015,并希望将一堆要素类剪辑为一个要素,但是似乎找不到一种简便的方法来实现。 编辑:试图选择多个功能类型的输入数据集,并将它们全部链接到一个单一的变压器,而无需点击功能类型,并链接到变压器上的输入箭头单独的输出箭头。 编辑2:这是一个屏幕截图,希望这会有所帮助:

3
R中的反向裁剪(擦除)?
反向剪辑仅保存空间对象中位于 另一个对象边界之外的部分,而常规剪辑则将其保存在另一个对象内部的部分。 在ArcMap中执行反向剪辑?显示了如何在ArcMap中进行操作。 如何在R中执行此操作? 可重现的示例(在Linux机器上): system("wget 'https://github.com/Robinlovelace/Creating-maps-in-R/archive/master.zip' -P /tmp/") unzip("/tmp/master.zip", exdir = "/tmp/master") uk <- readOGR("/tmp/master/Creating-maps-in-R-master/data/", "ukbord") lnd <- readOGR("/tmp/master/Creating-maps-in-R-master/data/", "LondonBoroughs") plot(uk) plot(lnd, add = T, col = "black") 我要在这里做的是保存除伦敦以外的整个英国。视觉上,我希望结果图像中的黑色形状是一个孔。
14 r  clip  erase 

3
Gdal:用另一个栅格裁剪一个栅格
我正在编写一个简单的实用程序,将一批多波段Geotiff栅格文件裁剪到相同(较小)的区域。使用gdalwarp,我可以使用单多边形剪切shapefile轻松裁剪文件: gdalwarp -cutline clipper.shp -crop_to_cutline input.tif output.tif 但是,我要裁剪的实际区域将始终始终由另一个geotiff栅格文件而不是shapefile定义。如果可以将栅格的范围用作剪切文件,那将很好,但是我不确定如何执行此操作。毫不奇怪,以下代码不起作用(它不会引发错误,它只会产生任何东西): gdalwarp -cutline clipper.tif-crop_to_cutline input.tif output.tif 所以,我的问题是,有没有办法提供栅格gdalwarp -cutline?或者,是否还有另一个gdal函数可以使用另一个栅格裁剪一个栅格?如果这两种方法均不可行,是否有一种非常简单的方法来生成具有由栅格范围定义的单个多边形的shapefile? 这段代码将包装在更广泛的python脚本中,因此我可以使用命令行gdal实用程序或gdal的任何python绑定。 作为附带说明,我知道我可以轻松地制作一个裁剪shapefile,以覆盖我在QGIS中的栅格范围。如果找不到简单的解决方案,我可能会这样做,但是最终,作为大型自动化分析的一部分,我最终将在数十个甚至数百个区域中使用此实用程序,因此我不希望乏味即使非常简单,也可以手动执行。
14 python  raster  gdal  clip  gdalwarp 

2
将空间对象裁剪到R中的边界框
给定R中的Spatial对象,我如何裁剪其所有元素以使其位于边界框中? 我想做两件事(理想情况下,我会做这两种事情,但是对我当前的问题来说,这都是可以接受的解决方案-将多边形shapefile限制在美国本土)。 将每个元素都未完全放入边界框中。 这似乎bbox()<-是合乎逻辑的方法,但是不存在这种方法。 进行真正的裁剪操作,以使非无限小元素(例如,多边形,直线)在边界处被切除。 sp::bbox缺少赋值方法,所以我想出的唯一方法是将over或gContains/ gCrosses与包含带有新边界框坐标的框的SpatialPolygons对象结合使用。然后,在剪切多边形对象时,您必须找出包含的对象与交叉对象,并更改这些多边形的坐标,以使其不会超出框。或类似的东西gIntersection。但是肯定有更简单的方法吗? 虽然我知道边界框存在很多问题,并且通常最好在定义感兴趣区域的多边形上进行空间覆盖,但在许多情况下,边界框可以正常工作并且更简单。
14 r  clip  extents 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.