Opened 15 years ago

Closed 15 years ago

Last modified 15 years ago

#654 closed defect (fixed)

g.proj -c fails with ERROR: region for current mapset is not set run "g.region"

Reported by: hamish Owned by: grass-dev@…
Priority: critical Milestone: 6.4.0
Component: Default Version: 6.4.0 RCs
Keywords: g.proj Cc:
CPU: All Platform: All

Description

As reported on grass-user

 g.proj -c georef=swilAlphaTIFF.tif location=tset

fails with recent builds. I can reproduce on linux.

I traced this back to r37726 where wind_format.c's format_double() uses G_projection() which wants to check the projection type (and that hasn't been created yet).

I think the solution is to create a new lib fn

 char *G_format_number(double value, int dp);

so modules don't have to lie to G_format_northing() about their projection type in order to get numeric output from lat/lon locations. then we can get rid of G_projection() from format_double().

Either that or finally implement GRASS_DMS_STYLE variable and temporarily set that to numeric degree style.

Hamish

Attachments (1)

fullprcfmt.diff (2.6 KB ) - added by hamish 15 years ago.
patch to give G_format_*() full prec. fmt option

Download all attachments as: .zip

Change History (8)

in reply to:  description comment:1 by hamish, 15 years ago

Replying to hamish:

wind_format.c's format_double() uses G_projection() which wants to check the projection type (and that hasn't been created yet).

actually it has in a way,

the top two lines of PERMANENT/DEFAULT_WIND are written:

proj:       99
zone:       0

I'm not really sure if that helps though.

Hamish

comment:2 by hamish, 15 years ago

I think the solution is to create a new lib fn char *G_format_number(double value, int dp);

better, path of least change: allow G_format_northing() etc to accept "-1" for projection type which in this instance can mean use "%.15g" independent of the projection.

Hamish

by hamish, 15 years ago

Attachment: fullprcfmt.diff added

patch to give G_format_*() full prec. fmt option

comment:3 by hamish, 15 years ago

patch attached, but that's the easy part. It turns out a lot of modules are already using proj == -1 or similar to fool G_format_*() into outputting numerical output instead of DMS for certain tasks. i.e. this patch, or something like it, is long overdue.

need to audit all of the custom workarounds before applying..

Hamish

comment:4 by hamish, 15 years ago

fixed in r37983, r37979, r37981.

comment:5 by hamish, 15 years ago

Resolution: fixed
Status: newclosed

comment:6 by kyngchaos, 15 years ago

This seems to have fixed #648 also, at least for me applied to RC5 source on OSX.

in reply to:  6 comment:7 by hamish, 15 years ago

Replying to kyngchaos:

This seems to have fixed #648 also, at least for me applied to RC5 source on OSX.

yes, it should do. both new mapset creation using "g.proj -c" and "g.region -d" would leave broken mapsets. :-/

Hamish

Note: See TracTickets for help on using tickets.