Opened 10 years ago

Last modified 5 years ago

#2402 new enhancement

v.distance in Long/Lat Locations on GRASS 7.0

Reported by: micha Owned by: grass-dev@…
Priority: normal Milestone: 7.6.2
Component: Default Version: unspecified
Keywords: Cc:
CPU: Unspecified Platform: All

Description

In stable version 6.4, when working in a Long-Lat LOCATION, v.distance returns geodesic distance on a sphere in meters (in the cases of point to point, and point to line).

In GRASS 7.0 this feature is lost, and distances are always returned in the LOCATION units (i.e. degrees in a Long-Lat LOCATION). Geodesic distance should be the preferred behavior.

Attachments (1)

vdistance_ll.diff (3.1 KB ) - added by mlennert 10 years ago.
patch for enabling geodesic distances in LL-locations

Download all attachments as: .zip

Change History (18)

comment:1 by wenzeslaus, 10 years ago

This would be a blocker for 7.0 release unless the current (7.0's) behavior will be a default and requested requested behavior optional.

See also #2401 for 6.4.

in reply to:  1 comment:2 by mlennert, 10 years ago

Replying to wenzeslaus:

This would be a blocker for 7.0 release unless the current (7.0's) behavior will be a default and requested requested behavior optional.

I think that geodesic distances in LL-locations should stay the default behaviour, but even if we decide to make it optional, it still needs to be implemented [1].

Markus M: as you implemented the new version of v.distance, can you tell us quickly what needs to be done ?

Moritz

[1] https://trac.osgeo.org/grass/browser/grass/trunk/vector/v.distance/distance.c#L6

comment:3 by mlennert, 10 years ago

In the attached patch, I had a quick go at it, in line with the patch for grass6.

Needs testing, though.

Moritz

by mlennert, 10 years ago

Attachment: vdistance_ll.diff added

patch for enabling geodesic distances in LL-locations

in reply to:  description ; comment:4 by mmetz, 10 years ago

Replying to micha:

In stable version 6.4, when working in a Long-Lat LOCATION, v.distance returns geodesic distance on a sphere in meters (in the cases of point to point, and point to line).

In GRASS 7.0 this feature is lost, and distances are always returned in the LOCATION units (i.e. degrees in a Long-Lat LOCATION). Geodesic distance should be the preferred behavior.

Fixed for trunk in r61850.

in reply to:  4 ; comment:5 by mlennert, 10 years ago

Replying to mmetz:

Replying to micha:

In stable version 6.4, when working in a Long-Lat LOCATION, v.distance returns geodesic distance on a sphere in meters (in the cases of point to point, and point to line).

In GRASS 7.0 this feature is lost, and distances are always returned in the LOCATION units (i.e. degrees in a Long-Lat LOCATION). Geodesic distance should be the preferred behavior.

Fixed for trunk in r61850.

With the NC-data reprojected to EPSG 4326, I get the following now:

v.distance -p from=comm_colleges to=comm_colleges upload=dist col=dist dmin=0.0001

Finding nearest features...
 100%
 100%
from_cat|dist
1|null
2|null
3|null
[...]
55|null
56|null
57|null
58|null
 100%
58 categories - no nearest feature found

Whereas the same command in the NC-location gives me the expected list of distances.

Moritz

in reply to:  5 ; comment:6 by mmetz, 10 years ago

Replying to mlennert:

Replying to mmetz:

Replying to micha:

In stable version 6.4, when working in a Long-Lat LOCATION, v.distance returns geodesic distance on a sphere in meters (in the cases of point to point, and point to line).

In GRASS 7.0 this feature is lost, and distances are always returned in the LOCATION units (i.e. degrees in a Long-Lat LOCATION). Geodesic distance should be the preferred behavior.

Fixed for trunk in r61850.

With the NC-data reprojected to EPSG 4326, I get the following now:

v.distance -p from=comm_colleges to=comm_colleges upload=dist col=dist dmin=0.0001

Finding nearest features...
 100%
 100%
from_cat|dist
1|null
2|null
3|null
[...]
55|null
56|null
57|null
58|null
 100%
58 categories - no nearest feature found

Oops. Fixed in r61861.

in reply to:  6 ; comment:7 by mlennert, 10 years ago

Replying to mmetz:

Replying to mlennert:

Replying to mmetz:

Replying to micha:

In stable version 6.4, when working in a Long-Lat LOCATION, v.distance returns geodesic distance on a sphere in meters (in the cases of point to point, and point to line).

In GRASS 7.0 this feature is lost, and distances are always returned in the LOCATION units (i.e. degrees in a Long-Lat LOCATION). Geodesic distance should be the preferred behavior.

Fixed for trunk in r61850.

With the NC-data reprojected to EPSG 4326, I get the following now:

v.distance -p from=comm_colleges to=comm_colleges upload=dist col=dist dmin=0.0001

Finding nearest features...
 100%
 100%
from_cat|dist
1|null
2|null
3|null
[...]
55|null
56|null
57|null
58|null
 100%
58 categories - no nearest feature found

Oops. Fixed in r61861.

I just found a difference in distances calculated with grass6 and grass7 for points to areas (see explanation in #2401). Needs checking.

in reply to:  7 comment:8 by mmetz, 10 years ago

Replying to mlennert:

I just found a difference in distances calculated with grass6 and grass7 for points to areas (see explanation in #2401). Needs checking.

G6 and G7 produced nearly identical results after the last change to v.distance in trunk, but now (r61978) there is Vect_line_geodesic_distance() available in trunk and v.distance makes use of it (r61979). The results in latlong are now more similar to the results in the original NC projection. In particular, the larger deviations present in G6 have now disappeared in trunk.

comment:9 by martinl, 8 years ago

Milestone: 7.0.07.0.5

comment:10 by martinl, 8 years ago

Milestone: 7.0.57.3.0

comment:11 by martinl, 8 years ago

Milestone: 7.3.07.4.0

Milestone renamed

comment:12 by neteler, 6 years ago

Milestone: 7.4.07.4.1

Ticket retargeted after milestone closed

comment:13 by martinl, 6 years ago

What is status of this issue?

comment:14 by neteler, 6 years ago

Milestone: 7.4.17.4.2

comment:15 by martinl, 6 years ago

Milestone: 7.4.27.6.0

All enhancement tickets should be assigned to 7.6 milestone.

comment:16 by martinl, 5 years ago

Milestone: 7.6.07.6.1

Ticket retargeted after milestone closed

comment:17 by martinl, 5 years ago

Milestone: 7.6.17.6.2

Ticket retargeted after milestone closed

Note: See TracTickets for help on using tickets.