Tag Info

Hot answers tagged

8

Do a spatial join! First, set up your data frame in a projected coordinate system of your choice (whatever units you want your distances to show up in). So, say you're working in State Plane Feet, make sure all your layers are in State Plane Feet, so if they're not project them into it. From there, Right click on the points layer and click Joins & ...


6

According to Wikipedia, Vincenty's formula is slower but more accurate: Vincenty's formulae are two related iterative methods used in geodesy to calculate the distance between two points on the surface of a spheroid, developed by Thaddeus Vincenty (1975a) They are based on the assumption that the figure of the Earth is an oblate spheroid, and ...


6

Given a list of geographic coordinate pairs, you can implement the Haversine formula directly in Excel. The simplest way to use this (or a more accurate, but I think it's not your case) formula consists into press Alt+F11 to open the VBA Editor, click Insert --> Module and then (copy and) paste e.g. the code kindly suggested by blah238. There will be a ...


6

I am answering my own question with a proposed query. select *, ABS(x_permit-x_station)+ABS(y_permit-y_station) as manhattan FROM (SELECT longname AS NAME, lines AS metadata, T .slug, ST_Distance ( T .geom, ST_Transform (P .geometry, 3435) ) AS distance, ST_X(ST_Transform(p.geometry, 3435)) as x_permit, ST_Y(ST_Transform(p.geometry, 3435)) as ...


5

If you want to test whether some points (or shapes, etc) fall within a given distance of a given location, use the geographic version of ST_DWithin(). From http://www.postgis.org/docs/ST_DWithin.html boolean ST_DWithin(geography gg1, geography gg2, double precision distance_meters, boolean use_spheroid); Thus, SELECT ST_DWithin( ST_GeomFromText( ...


5

ST_Distance is a calculation which must be executed and evaluated on every row. ST_DWithin can use an index, so it's likely to be much faster.


5

You can do this analysis in the "spdep" package. In the relevant neighbor functions, if you use "longlat=TRUE", the function calculates great circle distance and returns kilometers as the distance unit. In the below example you could coerce the resulting distance list object ("dist.list") to a matrix or data.frame however, it is quite efficient calculating ...


4

An advanced method that will work on all levels of ArcMap (must be 10.1 or above though) would be to read the geometry of each point and project it on the fly to compute the distance between the features. This is a good read about how the Near tool works. The following code does this (all you'll need to do is find a good PCS for your dataset): import ...


4

Use gCentroid from rgeos to calculate centroids. Use spDists from sp (as mentioned by @Jot eN above) to calculate distance matrices. I made up a simple example using admin boundaries. Note that the parameters of spDists change, depending on your map units. The example is for degrees. If you have meters use something like: spDists(centroids)/1000 ...


4

PointMaker will allow you to create points using a variety of point patterns including random, random in circle or ellipse, grid and linear with several variants. It sounds like you want to create them in a grid or linear pattern with or without rotation.


4

If you're using geopy, then the great_circle and vincenty distances are equally convenient to obtain. In this case, you should almost always use the one that gives you the more accurate result, i.e., vincenty. The two considerations (as you point out) are speed and accuracy. Vincenty is two times slower. But probably in a real application the increased ...


4

There is a python plugin for QGIS to calculate Tobler's Hiking function. It's called Walking times and you can install it using the qgis oficial repository. The plugin page explains how it works: http://sigsemgrilhetas.wordpress.com/plugins-qgis/walking-time/ And, since we are talking about open source, you can see and download all the code here: ...


4

Distances, one to another, can't be calculated on polygons (or lines for that matter). What you need to do is convert the polygons to points using feature to point to get the centroids (1 point per polygon, roughly centre) then do a near or spatial join to find the closest swamp polygon to the land parcel. If you want better location of the nearest feature ...


4

There actually is no difference between the two functions, which both yield 1.195 km. The problem is that in your question the axis order is flipped for trajectory, so you are seeing different answers than you expect. SELECT ST_AsLatLonText(point_a) AS point_a_latlon, ST_AsLatLonText(point_b) AS point_b_latlon, ST_Distance_Spheroid(point_a, point_b, ...


4

Taking into account Andre's comment, and for the sake of learning I modified another user's answer to create a 3D Line from your sample data. I hope you or someone else might find it useful: X,Y,Z,pt_dt 2970969.635,359725.0088,83.4242,1-x 2970968.278,359722.2182,83.2591,1-x 2970941.771,359670.127,83.0655,1-x 2970961.369,359708.6424,83.4785,1-x ...


4

If I understand your question correctly, you can achieve this by using the Distance to nearest hub function via Processing Toolbox. Select the required options (first image), and choose what measurement you want the distance to be calculated in which will be added into a new column. You can repeat this step to then calculate the centre of each cell to the ...


3

How about a method which is both more accurate and faster? This is provided by GeographicLib. Comparative timings (C++ implementations on a 2.66GHz Intel processor, using g++) are: Vincenty direct: 1.11 us GeographicLib::Geodesic::Direct: 0.88 us GeographicLib::GeodesicLine::Position: 0.37 us ...


3

Am I misunderstanding? Isn't this just: SELECT ST_Asimuth(p.geom, ST_ClosestPoint(l.geom,p.geom)) AS azimuth FROM line l, point p If you have more than one item in the line and point tables, the question of what condition you join them on becomes important, but as you described it, it's just one item in each.


3

Your first problem has a straightforward solution... Given lat1, lon1, lat2, lon2, you can solve the inverse geodesic problem to determine azi1, azi2, the azimuths at the end points. The problem now is: given lat1, lon1, azi1, and lat3 determine lon3. This is the so-called hybrid problem and its solution is described in Section 4 of Algorithms for ...


3

As you have got ArcInfo and you only have 226 points I would suggest you run your data through the Generate Near Table tool that is in the Analysis toolbox. This will give you all combinations but you could easy delete the unwanted combinations leaving you with your 1> 2, 2>3, 3>4..etc.


3

We were solving similar problem. The best and fastest way for us is: Rasterize line layer (Raster/Conversion/Rasterize...) Convert to Proximity (Raster/Analysis/Proximity...) Use plugin Point sampling tool to get values for all your point from raster


3

Delaware Stateplane, EPSG:2235 should work well for the whole state.


3

Have a look at the service areas solver in network Analyst If you do a few of them at different intervals then you would be able to show rings of route distance/time from each school along the route layer. I hope that helps :)


3

What I think happened here was that although the dataframe and all layers were saying they were in the correct Project Coordinate System, they actually weren't registered to one at all. I over came this by first defining the coordinate systems for all the layers to OSGB36 and then projecting them to BNG (which is based on Tranverse Mecator). The map looks ...


3

You are absolutely correct. From wikipedia's Mercator projection: scale factor = secant (latitude) = 1 / cosine (latitude) Generally, divide map distance by the scale factor to get globe distance. But what about "long" lines, at different latitudes, what scale factor to use? According to EF Burkholder, for short lines, just calculate one scale factor ...


3

If you have access to Network Analysis - and your bus routes are connected and directionally accurate - you can use this to determine distances. This would give you the distance along the route as opposed to as the crow flys. http://resources.arcgis.com/en/help/main/10.2/index.html#//004700000001000000


3

your coordinates are probably in lat/long with degrees as a unit. therefore, along meridians or near the equator, one degree is approximately 111km (circumference/360). note that this will change depending on the distance to the equator. A good practice is to use a local projected coordinate system that is appropriate for your location in order to have a ...


3

Use the Points to Line tool. http://resources.arcgis.com/en/help/main/10.1/index.html#//00170000003s000000 You could use a datestamp for the sort field, if the default doesn't work the first time. The shape length of the line should be included in the output feature class, if it is in a geodatabase. You might want to check the length by adding a field to ...


3

The following code is not polished but should work to create the same output table as the Point Distance tool but requires ArcGIS 10.1 (or later) for Desktop and only a Basic level license: import arcpy,math # Set variables for input point feature classes and output table ptFC1 = "C:/temp/test.gdb/PointFC1" ptFC2 = "C:/temp/test.gdb/PointFC2" outGDB = ...


3

Achieving this goal is somewhat a basic task in GIS, however the method in QGIS might not be trivial. Your best chance is to use GRASS's r.walk function, which creates an anisotropic cost surface (dem+slope+other factors). First, you have to create a friction surface as an input to r.walk. In your case it can be a single-valued raster (1.0) matching the ...



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