[GRASSLIST:3589] Re: Geophysical framework: WHITE PAPER
Michael Barton
michael.barton at asu.edu
Fri Jun 4 01:01:42 EDT 2004
Craig and Benjamin
Your thoughts are much appreciated. This project is really beginning to
take shape. I have a couple more suggestions from the GRASS
perspective.
It is easiest to include them below.
>
> Thanks Michael and Benjamin, I have several comments/questions:
>
> Acquisition/Raw data:
> <quote>
> If the data are a set of vector points recorded in an orthogonal grid,
> they can be georeferenced using ***v.transform*** and a simple first
> order transformation. This requires only that the real-world
> coordinates (e.g. UTM's) be known for 3-4 of the original data points
> (i.e., ground control points or GCP's). The corners of the original
> survey area are convenient places to do this, but any well-spaced set
> of points will do in theory.
> </quote>
>
> In my experience, the data is rarely uniform. For mineral exploration,
> data is often collected in less then hospitable terrain which means
> that certain points on the proposed acquisition grid cannot be
> accessed in the real world. For the surveys I have been involved in
> where the instrument does not have a GPS, a coordinate was obtained
> using a technique appropriate for the accuracy desired ie GPS
> instrument or using laser Theodolites. Even in this case though, the
> data could still be imported as vectors as you described after some
> manipulation:
>
> x-coordinate, y-coordinate, other data (ID, values, dates, etc)
Thinking it over, there are at least 3 possible kinds of data sets:
1. Data with georeferenced xy coordinates, such as those derived from
intruments with integrated GPS (or post processed to include GPS data).
2. Data with xy coordinates that are not georeferenced, such as those
from an arbitrary grid laid out in the field
3. Data lacking xy coordinates that need to have them assigned.
If the data flow involves input points into vector format, optionally
assign coordinates if needed, optionally georeference is needed, it
would accomodate all three.
>
> Regarding corrections that need to be performed on the data (also
> often referred to as reductions):
>
> 1) Drift correction.
> 2) Latitude correction
> 3) Eötvos correction.
> 4) Reduction to the pole.
> 5) Free air and Bouger correction.
> 5) Terrain corrections.
These all seem conceptually be be errors in measurement that need
correction. If so, they should be corrected in the original
measurements (i.e., vector points) prior to surface model generation.
Georeferencing does not affect these, but would be necessary at least
to apply terrain correction (i.e., because DEM's are usually
georeferenced).
> 6) Trend surface removal. This applies to grav and mag data. Usually
> involves fitting a 1st or 2nd order surface to the data and then
> differencing that surface with the data set to get the residual data.
> There are many ways to do this. I recently came across a paper from
> Paolo Zatelli and Andrea Antonello titled "New GRASS modules for
> multiresolution analysis with wavelets". Multiresolution analysis
> would be a great way to do this reduction, although a more traditional
> approach would be to use least squares to fit a 1st or 2nd order
> surface.
I **think** that this is better done on the surface model than the
original points because it is a type of signal processing (see below).
>
> To summarize: All the standard corrections (except maybe terrain
> correction) could be applied using existing GRASS modules. These
> corrections could be implemented either in shell scripts or in a new
> GRASS module. My inclination is to write a GRASS module to do this.
> Any comments?
There is no map calculator for vector points. However, they can be
altered using SQL update queries within GRASS. The calculations and
data manipulations necessary to do the corrections might be better
implemented in a GRASS module than a shell script.
> NOTE: The last message I sent got garbled up,
> so please disregard and read this one instead:
Thanks for resending this. I thought it was my email.
>
> (a) can very easily be converted to (b) by adding coordinates, so it
> would
> indeed be easy to have a unified data model.
I agree. That's why I came to the same conclusion about using vector
points after some thought.
>
> For data type (a), rasterisation can be done without interpolation and
> the
> filters should be run on this, un-interpolated, data.
> Interpolation will only be necessary in the final step, if the axes
> and/or
> resolution of the working location are different than those of the
> data.
> So -- just one interpolation in this case.
>
> For type (b), interpolation will have to be done right after import,
> because
> ** I think ** filters will work better on data which is still properly
> aligned
> to the region's X/Y axes. I have a hard time, e.g. imagining a
> destripe filter
> work well on stripes running diagonally, which might happen,
> if the filter is to run on a rectified image (correct me, if this is
> wrong!).
> In this case, we would indeed need two interpolations for the final
> result.
This is somewhat complicated. With respect to interpolation,
conceptually all of the rasterization should be by interpolation. All
geophysical measurements are point samples of a continuous field.
Hence, you need to model the continuous field from the samples. While
there are a number of ways to do this, interpolation is the most
common.
If a set of points are orthagonally distributed and equidistant from
each other, you can certainly directly convert them to raster grids
(***v.to.rast***). However, this assumes that the field in the space
between points is constant up to the edge of a grid square (half-way
between points), where it abruptly changes to the value of the next
point. In some cases, where orthagonal, equidistant sample points are
so closely spaced that inter-point variation is irrelevant,
interpolation is unnecessary. However, I suspect that this is the
exception rather than the rule. Direct rasterization should probably be
an option, but interpolation should probably be the norm.
The second issue is what order to interpolate, filter, and
georeference. In my experience with satellite imagery, georeferencing a
raster image causes it to lose visual clarity a bit--that is, signals
lose definition. Hence, signals enhanced by filtering will lose some of
their visual impact (and possibly quantitative definition and
separation) if a raster is georeferenced after enhancement. This may or
may not be a problem, depending on what one is doing with the raster.
This does not happen, however, if the raster surface model is created
after the vector points are georeferenced. That is, georeferencing a
raster will change the values of a raster grid, but georeferencing a
set of vector points will only change the xy coordinates, not the z
value.
While most filters should work equally well on georeferenced and
non-georeferenced data sets, destriping may be another problem. I
thought that a fft filter destriped by focusing on signal frequency
rather than orientation, but I have very little experience with this
and may well be wrong here. I suggest some experiments with filtering
and georeferencing to see what order produces the best results.
The other reason to georeference early is that georeferened point sets
(e.g., from multiple sample grids) can be easily combined visually
simply by displaying and combined into a single analytical file using
v.patch. The same is true of georeferenced rasters. They can be
mosaiced by using r.patch. There is no need for the 'r.composite'
module mentioned.
One potentially useful enhancement of r.mfilter is the ability to run
the filter across multiple rasters in a single pass. Currently, a
filter only alters a single raster. This could be enhanced so that
r.mfilter could be run across a set of rasters specified in the input.
Also note that r.mfilter allows the specification of multiple filters
to be run across a raster.
>
> I would like to keep the grid layout information intact, because I deem
> it very handy.
This is a good idea. I'd suggest keeping it in a simple text file with
structured variables much like a GMT or ESRI header file. Thus, each
data set (i.e., from a grid sample) would be stored in a text file
named <filename>.grd (or something like that) and a corresponding grid
definition file would be stored in <filename>.gdf. A *.gdf file might
have a series of variables like
TITLE
DATE
ROWS
COLUMNS
ULX
ULY
ULXCOORD
ULYCOORD
LLX
LLY
LLXCOORD
LLYCOORD
...
and so on.
Such a file could be easily parsed by a module that would read it and
determine if it was type 1,2, or 3 above and process it accordingly. It
would be kept associated with the data file by having the same name but
a different extension.
I hope this is helpful.
MIchael Barton
____________________
C. Michael Barton, Professor
School of Human Origins, Cultures, & Societies
PO Box 872402
Arizona State University
Tempe, AZ 85287-2402
USA
Phone: 480-965-6262
Fax: 480-965-7671
www: <www.public.asu.edu/~cmbarton>
On Jun 1, 2004, at 10:01 PM, Multiple recipients of list wrote:
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: text/enriched
Size: 9269 bytes
Desc: not available
Url : http://lists.osgeo.org/pipermail/grass-user/attachments/20040603/cd3abe6e/attachment.bin
More information about the grass-user
mailing list