Hot answers tagged

34

Try these steps with ArcMap 10: Buffer your point feature (ArcToolbox > Analysis Tools > Proximity > Buffer). Make sure to select the correct distance in the Linear unit box. Input your newly created buffers into the Feature Envelope to Polygon tool (Data Management Tools > Features > Feature Envelope to Polygon). Make sure to select the "Create multpart ...


22

The buffer size is always applied in the layer CRS units. Therefore, the layer CRS has to use meters if you want to buffer in meters. You don't need ftools to change the CRS. Open the original layer in WGS84 CRS. Right-click in layer list and select "Save as ...". (DON'T change the CRS in layer options!) Set the target CRS to NAD83/Maryland and save. ...


19

Use the Erase (Analysis) Tool:


17

Summary This answer places the question into a larger context, describes an efficient algorithm applicable to the shapefile representation of features (as "vectors" or "linestrings" of points), shows some examples of its application, and gives working code for using or porting into a GIS environment. Background This is an example of a morphological ...


16

The Python GDAL/OGR Cookbook has some sample code to Buffer a Geometry. from osgeo import ogr wkt = "POINT (1198054.34 648493.09)" pt = ogr.CreateGeometryFromWkt(wkt) bufferDistance = 500 poly = pt.Buffer(bufferDistance) print "%s buffered by %d is %s" % (pt.ExportToWkt(), bufferDistance, poly.ExportToWkt()) and to Calculate intersection between two ...


15

The area of a circular buffer is a monotonically-increasing function of buffer radius (on a planar coordinate system anyway). So a simple search strategy can find a radius R such that the area of the buffer of radius R clipped to polygonal region A is (up to some tolerance) s. The simplest search algorithm would just be a binary search. Start with two radii,...


13

The steps to do this are: Select your layer by clicking on it From the Editor toolbar, select Start Editing On the Editor Menu, select Buffer Write a Negative Distance Amount to create an inside buffer... Without Inner Buffer: With Inner Buffer:


12

Proper one-sided buffers were supposed to have landed in 1.5, but it looks to me that while the styles did land, sidedness didn't make it in. There is however a current patchset which exposes GEOSSingleSidedBuffer and performs the one-sided buffer as expected, under the name ST_OffsetCurve; see further background in ticket #413. In use: select ST_AsText(...


12

If you are interested in an implementation look at jsts a Javascript implementation of the much used Java Topology Suite library -- depending on whether you prefer reading Javascript or Java, I suppose. A general idea of how the algorithm works. For points, it is trivial, you simply buffer them by a given radius. If you have multiple points, you will have ...


11

As @Underdark comments ST_Dwithin is the recommended way of finding geometries at a distance. In many other gis-systems the buffer method is the only way but building buffers is quite costly. But there is other use cases when you need to buffer. One reason can be to visualize a buffer. If you for instance wants to show the area closer than 100 meters from a ...


11

Here is my list of Python geoprocessing software. Shapely, python OGR, python QGIS, pyqgis, python SagaGIS, python Grass, python spatialite, pyspatialite, python PostreSQL/PostGIS, Psycopg, python R Project, rpy2, python Whitebox GAT, python GeoScript, jython


11

To simplify, Shapely: manual allows all geometry processing of PostGIS in Python. The first premise of Shapely is that Python programmers should be able to perform PostGIS type geometry operations outside of an RDBMS... The first example of PolyGeo from shapely.geometry import Point, LineString, Polygon, mapping from shapely.wkt import loads pt = ...


10

ArcGIS is utterly woeful for dissolving/merging. We had to do a buffer/merge for 3 million points recently and soon gave up on using ArcGIS -- their help desk didn't have much clue either. Postgres did it in less than an hour using the st_union function. see http://blog.cleverelephant.ca/2009/01/must-faster-unions-in-postgis-14.html


10

You can use the "Intersect" tool on the buffer and land use layers. This should create a third layer where buffers are "cut out of" the land use polygons. Then you can calculate the area of the resulting polygons using Field Calculator. Village buffer before and after the Intersect operation and calculation of area using Field Calculator: Divide by ...


10

A possible solution would be to create your "normal" round buffers using the standard ESRI buffer tool with whatever radius you would like and then performing a Feature Envelope To Polygon on that resulting feature class of buffers. This creates a square envelope feature around the extent of each feature. Feature Envelope to Polygon is located within Data ...


10

Let's break this down into simple pieces. By doing so, all the work is accomplished in just a half dozen lines of easily tested code. First, you will need to compute distances. Because the data are in geographic coordinates, here is a function to compute distances on a spherical datum (using the Haversine formula): # # Spherical distance. # `x` and `y` ...


10

Since Erase (as @Jens linked) only is available with an Advanced license, you can download ET Geowizards. It can be installed as an Arcmap toolbox. Although you have to pay for the full suite, there's a free part of the program and the Erase function is included there (Overlay group).


10

Here is a pure raster solution in Python 2.7 using numpy and scipy: import numpy as np from scipy import ndimage import matplotlib.pyplot as plt #create tree location matrix with values indicating crown radius A = np.zeros((120,320)) A[60,40] = 1 A[60,80] = 2 A[60,120] = 3 A[60,160] = 4 A[60,200] = 5 A[60,240] = 6 A[60,280] = 7 #plot tree locations fig = ...


10

You haven't selected the feature, you used the Identify tool. The Select tool icon 2 over to the right in your toolbars


9

You have different ways to get what you want by PyQGIS Console: Aragon's suggestion; by using QgsGeometryAnalyzer class: from qgis.utils import iface from qgis.analysis import QgsGeometryAnalyzer mc = iface.mapCanvas() layer = mc.currentLayer() QgsGeometryAnalyzer().buffer(layer, "path_to/output.shp", 500, False, False, -1) by using Sextante class: ...


9

Shapely gives python access to GEOS which can do buffers/intersects/etc. GEOS is the library most OSGeo programs use to perform those operations.


9

I made a custom Create Buffer Interval toolbox for you: In ArcMap open ArcToolbox, right click in the whitespace and click Add Toolbox. Browse to the one I made and run the Create Buffer at Interval tool. Here's a screenshot of the parameters: It should be pretty straightforward, but let me know if you have any questions!


9

In step 4, you have to change the CRS from NAD83 to another projection that uses metres as units. It depends on the extent of your data which one is best. Unfortunately, your data is located all over the world, so you could: Create a custom CRS using aeqd (or tmerc) for each one, and draw just that one buffer with it. Practically, you only have to create ...


8

You don't say which software you're using, but the thing you're looking for is Voronoi polygons (AKA Theissen polygons). This is the set of polygons such that any point within a polygon is nearest to its seed point. You will find that the polygons tessellate, which might be a problem if your offices have a maximum distance of responsibility. If that is the ...


8

Defining a line's side is rather straight forward on an orientable surface, which a 2D plane in a GIS is. If you define a start point and an end point for a line, you can unambiguously define "left" and "right" sides. This is the case even if the line crosses itself. From a more practical standpoint, simple workflow for creating a one-sided buffer includes ...


8

if you wanna a basic code, you can check out following code: #Dont forget to Toggle Editting lyr = qgis.utils.iface.activeLayer() provider = lyr.dataProvider() feat= QgsFeature() alls = provider.attributeIndexes() provider.select(alls) while provider.nextFeature(feat): buff = feat.geometry().buffer(5,2) lyr.dataProvider().changeGeometryValues({...


8

Just a little thing to add to the last reply. To search for a SEXTANTE algorithm about a given topic, use Sextante.alglist(). For instance, in the case of searching for something containing "buffer", you would do >>> from sextante.core.Sextante import Sextante >>> Sextante.alglist("buffer") And you would get: Grid Buffer----------------...


8

For this application, I would use an Azimuthal Equidistant projection centered in the middle of your source points. This projection has the nice feature of all radial distances around the center of the projection being accurate. That particular projection is not part of QGIS standard projections. You can define your own using Settings/Custom CRS with the ...


8

It sounds like you are entering a value in miles or km (ie 10) but the projection is in geographic. The buffer tool will interpolate that as a 10 degree buffer. You will need to do one of two things: translate your value to equal the buffer size in degrees, or, reproject your data into a projection that is not geographic


8

Another option here would be to perform a union and then delete the inner feature.



Only top voted, non community-wiki answers of a minimum length are eligible