Opened 7 years ago

Last modified 5 years ago

#3430 new defect

v.clean threshold in lat-long: metric or not?

Reported by: neteler Owned by: grass-dev@…
Priority: normal Milestone: 7.6.2
Component: Vector Version: 7.2.2
Keywords: v.clean Cc:
CPU: Unspecified Platform: Unspecified

Description

From: https://gis.stackexchange.com/questions/258089/v-clean-with-rmarea-and-lat-long-projection

There is some confusion concerning this message: main.c:

    /* TODO: threshold might be recalculated with optional geodesic support to meters */
    if (G_projection() == PROJECTION_LL)
        G_important_message(_("Note: In latitude-longitude coordinate system specify threshold in degree unit"));

while the documentation reads:

grep meter v.clean.html 
case, also the threshold parameter requires several values to be listed
Threshold must always be in square meters, also for latitude-longitude 
locations or locations with units other than meters.

Should the G_important_message() be removed from main.c?

Change History (6)

in reply to:  description ; comment:1 by mlennert, 6 years ago

Replying to neteler:

From: https://gis.stackexchange.com/questions/258089/v-clean-with-rmarea-and-lat-long-projection

There is some confusion concerning this message: main.c:

    /* TODO: threshold might be recalculated with optional geodesic support to meters */
    if (G_projection() == PROJECTION_LL)
        G_important_message(_("Note: In latitude-longitude coordinate system specify threshold in degree unit"));

while the documentation reads:

grep meter v.clean.html 
case, also the threshold parameter requires several values to be listed
Threshold must always be in square meters, also for latitude-longitude 
locations or locations with units other than meters.

Should the G_important_message() be removed from main.c?

Looking through the code, I actually have the feeling that the documentation is wrong, at least for some of v.clean's functionalities. For example for snapping, I see the following in the code:

            dx = XPnts[pointb].x - XPnts[point].x;
            dy = XPnts[pointb].y - XPnts[point].y;
            dist2 = dx * dx + dy * dy;

            if (dist2 > thresh2) /* outside threshold */
                continue;

So while area calculations might use meters (i.e. the rmarea function mentioned in the SE message), I'm not sure this is the case for snapping distances... I think this needs very careful review before deciding what to do.

in reply to:  1 ; comment:2 by mmetz, 6 years ago

Replying to mlennert:

Replying to neteler:

[...]

Should the G_important_message() be removed from main.c?

Looking through the code, I actually have the feeling that the documentation is wrong, at least for some of v.clean's functionalities.

[...]

So while area calculations might use meters (i.e. the rmarea function mentioned in the SE message), I'm not sure this is the case for snapping distances... I think this needs very careful review before deciding what to do.

I suggest to remove the message, because the message does not distinguish between the different cleaning tools. For tool=rmarea, the threshold must always be in square meters as stated in the manual. Otherwise, I'm pretty sure that the threshold is map units, also for latlon.

in reply to:  2 comment:3 by mmetz, 6 years ago

Replying to mmetz:

Replying to mlennert:

Replying to neteler:

[...]

Should the G_important_message() be removed from main.c?

Looking through the code, I actually have the feeling that the documentation is wrong, at least for some of v.clean's functionalities.

[...]

So while area calculations might use meters (i.e. the rmarea function mentioned in the SE message), I'm not sure this is the case for snapping distances... I think this needs very careful review before deciding what to do.

I suggest to remove the message, because the message does not distinguish between the different cleaning tools. For tool=rmarea, the threshold must always be in square meters as stated in the manual. Otherwise, I'm pretty sure that the threshold is map units, also for latlon.

According to https://gis.stackexchange.com/questions/258089/v-clean-with-rmarea-and-lat-long-projection there is another issue with v.clean tool=rmarea because it might remove areas that should not be removed. A test dataset would be helpful.

comment:4 by martinl, 6 years ago

Milestone: 7.2.3

Ticket retargeted after milestone closed

comment:5 by martinl, 6 years ago

Milestone: 7.2.4

comment:6 by martinl, 5 years ago

Milestone: 7.2.47.6.2
Note: See TracTickets for help on using tickets.