[GRASS-user] OFF-TOPIC - Earth Curvature in profiles

Sorry for the OT, but can anyone point me some reference (paper, web,
etc) that explains how can I draw a topographic profile using the
Earth´s curvature? I am thiking about the output of r.profile (ascii,
distance from origin + elevation), in a section of about 3000 km, with
a vertical exaggeration of about 200 times.

tks!

Carlos

--
+-----------------------------------------------------------+
              Carlos Henrique Grohmann - Guano
  Geologist M.Sc - Doctorate Student at IGc-USP - Brazil
Linux User #89721 - carlos dot grohmann at gmail dot com
+-----------------------------------------------------------+
_________________
"Good morning, doctors. I have taken the liberty of removing Windows
95 from my hard drive."
--The winning entry in a "What were HAL's first words" contest judged
by 2001: A SPACE ODYSSEY creator Arthur C. Clarke

Can't stop the signal.

If I understand you correctly, you want to draw a topographic profile superimposed on an arc representing the curvature of the earth? What you want to do then is show the orthogonal distance of each sample from the chord defined by the start and end point of profile. You can try as follows but you'll have to work out the details;

1.) Plot a great circle line between your intended start and end points.
2.) Trace the path that the great circle line follows with r.profile and have it save the results to an xyz file. (the inability to sample along the great circle exactly will introduce some errors).
3.) Multiply z by 200 (note that to be technically correct you should change your sampled elevations from orthometric to ellipsoidal, but the magnitude of the errors introduced will likely be insignificant on the overall scale).
4.) Convert your xyz values to ECEF.
5.) Now, the vector between your start and end points in the ECEF coordinate system will represent a chord so a little trigonometry applied to the problem will allow you to calculate the orthogonal distance between the sample and the chord (ie, apply a rotation matrix so that the chord will be coincident with the x-axis of your plot).
6.) Plot your new values in any plotting software.

Clear as mud? The explanation is a little spartan, but it should get you started.

Cheers,

Mike

On 10-Jan-08, at 2:06 PM, Carlos Guâno Grohmann wrote:

Sorry for the OT, but can anyone point me some reference (paper, web,
etc) that explains how can I draw a topographic profile using the
Earth´s curvature? I am thiking about the output of r.profile (ascii,
distance from origin + elevation), in a section of about 3000 km, with
a vertical exaggeration of about 200 times.

tks!

Carlos

--
+-----------------------------------------------------------+
             Carlos Henrique Grohmann - Guano
Geologist M.Sc - Doctorate Student at IGc-USP - Brazil
Linux User #89721 - carlos dot grohmann at gmail dot com
+-----------------------------------------------------------+
_________________
"Good morning, doctors. I have taken the liberty of removing Windows
95 from my hard drive."
--The winning entry in a "What were HAL's first words" contest judged
by 2001: A SPACE ODYSSEY creator Arthur C. Clarke

Can't stop the signal.
_______________________________________________
grass-user mailing list
grass-user@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/grass-user

On Jan 10, 2008 10:06 PM, Carlos Guâno Grohmann
<carlos.grohmann@gmail.com> wrote:

Sorry for the OT, but can anyone point me some reference (paper, web,
etc) that explains how can I draw a topographic profile using the
Earth´s curvature? I am thiking about the output of r.profile (ascii,
distance from origin + elevation), in a section of about 3000 km, with
a vertical exaggeration of about 200 times.

Carlos,

if you want to correct r.profile for Earth´s curvature, see e.g. r.cva.
In essence, something like this code extracted from r.cva:

double DIST_CC;
double dest_elev;
double Re;

struct Option curvature_corr;
curvature_corr = G_define_option ();
curvature_corr->key = "curvc";
curvature_corr->type = TYPE_DOUBLE;
curvature_corr->required = NO;
curvature_corr->answer = "0.0";
curvature_corr->description = "Earth curvature correction threshold
(0.0 = off)";

Re = 6356766.0; / radius of Earth in m /
dist = sqrt(del_x*del_x +del_y*del_y) * window.ns_res;
DIST_CC = atof (curvature_corr->answer);

/* CURVATURE CORRECTION */
/* decrease height of target point */
if (DIST_CC > 0.0) {
    if (dist >= DIST_CC) {
    dest_elev = dest_elev - ((dist*dist) / (2 * Re));
   }
}

http://www.ucl.ac.uk/~tcrnmar/downloads/AdvancedViewshedAnalysis.tar.gz
file pts_elim3.c

AFAIK also r.sun contains such code.

Markus

Carlos wrote:

Sorry for the OT, but can anyone point me some reference (paper, web,
etc) that explains how can I draw a topographic profile using the
Earth´s curvature? I am thiking about the output of r.profile (ascii,
distance from origin + elevation), in a section of about 3000 km,
with a vertical exaggeration of about 200 times.

maybe a little work, but consider elevation as radius perturbation and
distance along transect as theta-angle, then draw a circle with the
relief shudder in it. ie like an AM radio wave.

when that is working you can change the ideal circle to an ellipse of
appropriate bend for 3000km.

but probably it is better to just figure a way to calculate the
vertical distance between a chord connecting the two 3000km ends and
the circumference for each step along the transect.

then add that distance to the elevation.

just an idea,
Hamish

      ____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping

Well thanks all for the answers!

This is what I did:

- used r.profile to get (dist, elev) data from E-W profiles.
- I didn't considered the elipsoid, I used and approximation to a
sphere (to simplify my life :))
- from the total distance, I calculated the arc of curvature (theta)
- now I have a spreadsheet with my data (gnumeric)
- for the first point, I assigned a angular value of half the arc (theta/2)
- for each subsequent point, I subtracted the value of (theta/n) - for
n points in the profile
- then I created another column, with the "elev" value times 100 (for
vertical exaggeration) and added the radius of the Earth (6371 km)
- finally I created a polar plot of the distance and angles.

I not sure how "right" this is, but it seem to be a fair approximation.

Carlos

On Jan 15, 2008 3:30 AM, Hamish <hamish_b@yahoo.com> wrote:

Carlos wrote:
> Sorry for the OT, but can anyone point me some reference (paper, web,
> etc) that explains how can I draw a topographic profile using the
> Earth´s curvature? I am thiking about the output of r.profile (ascii,
> distance from origin + elevation), in a section of about 3000 km,
> with a vertical exaggeration of about 200 times.

maybe a little work, but consider elevation as radius perturbation and
distance along transect as theta-angle, then draw a circle with the
relief shudder in it. ie like an AM radio wave.

when that is working you can change the ideal circle to an ellipse of
appropriate bend for 3000km.

but probably it is better to just figure a way to calculate the
vertical distance between a chord connecting the two 3000km ends and
the circumference for each step along the transect.

then add that distance to the elevation.

just an idea,
Hamish

      ____________________________________________________________________________________
Looking for last minute shopping deals?
Find them fast with Yahoo! Search. http://tools.search.yahoo.com/newsearch/category.php?category=shopping

--
+-----------------------------------------------------------+
              Carlos Henrique Grohmann - Guano
  Geologist M.Sc - Doctorate Student at IGc-USP - Brazil
Linux User #89721 - carlos dot grohmann at gmail dot com
+-----------------------------------------------------------+
_________________
"Good morning, doctors. I have taken the liberty of removing Windows
95 from my hard drive."
--The winning entry in a "What were HAL's first words" contest judged
by 2001: A SPACE ODYSSEY creator Arthur C. Clarke

Can't stop the signal.