Jan, please CC the mailing list in your replies.
I have asked questions about not regularly spaced data on this mailing
list before, I just can't find the thread atm. In your first point, do
you mean my input data is "effectively a projected surface"? If so,
then no it is not projected, there are lat/lon values for each
individual pixel and they aren't evenly spaced. If you mean the output
is projected, then yes, my software does the projecting from lat/lon
space into a projection's metered (or degree) space. The data can then
be interpolated and treated like gridding a scatter plot (see the
griddata function in scipy and matlab).
The problem with GDAL and data that is not equally spaced geographically
is that it describes the data with a geotransform. The geotransform
(http://www.gdal.org/gdal_datamodel.html) only knows the origin of the
data and the pixel size (ignoring the 2 rotation elements). So for my
satellite data (VIIRS and MODIS), the data can not be properly
represented. My data starts out at one resolution near the center of
each row and loses quality as you go outward due to...the earth's shape :).
So if I understood you correctly, yes it is a hassle because you have to
look at each lat/lon point. If you don't look at each point (as I have
done with gdalwarp and its geotranforms) the produced image isn't
"correct". The quality is wrong and you have problems with "the bow-tie
effect". As far as I know, there are only 2 pieces of software
currently in development that handle satellite data in this way. One is
my software which isn't fully developed and uses a modified version of
some old software to do the remapping (which is what I'm trying to
replace, but it works). The second is pytroll, but doesn't meet the
needs of my bosses and is slower than the old software I'm using.
I hope at least some of this makes sense. Thanks for sticking with my
attempt at explanation. My final goal would be to add to GDAL the
ability or a utility to remap satellite data. Sorry this got so long, I
wasn't sure how much you knew about GDAL or satellite observations.
-Dave
On 1/22/2013 4:34 PM, Jan Heckman wrote:
Hi Dave,
It sounds as you have effectively a projected surface. The projected
(satellite) image consists of regularly spaced pixels? So that the
pixels would ideally be warped back, perhaps not image-wise but
pixel-wise, which would be a bit of a hassle... Don't see yet that the
warp can't be done in one go, but that shows I'm still missing stuff, or
that the transformation has to be reformulated to get it to work.
So I have some hope that fiddling with gdalwarp might produce something
useful. Then, the sheer amount of data may ultimately be best served by
a dedicated routine using parallel code. You seem to have figured out
the geometry pretty much already.
Maybe I'm not getting it yet?
Jan
On Tue, Jan 22, 2013 at 10:52 PM, David Hoese <dho...@gmail.com
<mailto:dho...@gmail.com>> wrote:
Hey Jan,
Thanks for the response. My process will need to be automated so
excel won't help. I also will be working with potentially large
amounts of data (200MB - ~4GB). I would like the output to be in a
flat binary format (just the data), but if I can pull the data out
of another format that will do for now. The output data will be
used in other software that I have written to place the data in any
format I request (geotiff, AWIPS compatible netCDF files, etc). I
was hoping to use gdal_grid for its algorithms to do the
interpolation from input swath pixels to output grid pixels. I am
working with "raw" satellite observation data that is not
equidistant (so it can't be put through gdalwarp which expects an
equidistant grid as input).
The x and y arrays are created by software I have written. The
values in these arrays state the x and y offset from the grid origin
of where the image pixel is. For example, a single pixel might be
at column 1.14 and row 1.6 of the grid I am mapping to. I would like
gdal_grid (or some other code) to use an algorithm (nearest
neighbor, averaging, etc) to interpolate this image pixel value onto
the surrounding grid points. Does that make sense? It's difficult
for me to describe since I've been working with it so much lately.
The start-to-finish goal is essentially what gdalwarp does when
remapping one grid to another, but this doesn't make the assumption
that the data points are equidistant. The gridding utility I'm
currently using is old and only offers a single algorithm for
interpolation. That algorithm does not produce "pretty" images for
a specific instrument's data so I'm looking for alternatives without
having to hack up the old utility. Maybe looking at it this way
will make more sense:
(lat,lon,projection) -> my software -> (y,x)
(x,y,image_in) -> gdal_grid -> (gridded_image_out)
Maybe I'll just write the python wrapper for GDALGridCreate since
the rest of my software is python. As far as I know GDAL doesn't
have anything else that does gridding and doesn't have anything that
can do non-equidistant data points. Thanks for the help so far. Man
this email got long fast.
-Dave
On 1/22/13 2:58 PM, Jan Heckman wrote:
Hi Dave,
So you have effectively three arrays, one for pixel values, one
for x, one for y (probably offsets), which are coordinated and you
want to generate a raster or grid which you can display / use in a
GIS?
Sort of sparse array to be converted to a full array, effectively?
It sounds crazy, maybe, but consider converting these to separated
text (numbers), bring them into excel (columns), tell (arc)gis to
convert to a (point) shapefile and finally, if necessary, convert
that to a raster.
If this is the job, it can alternatively be done quite simply by
writing a small procedure (C++ or python (or something else, I'm
sure)), without using excel etc, as long as you know the output
format (and maybe have a geoprocessor to call upon). A simple
output format is .bil. This is roughly simlar to shapefiles, with
some supporting files to use it in a GIS. Possibly flat 32 bit
float (.flt) is understood by gdal as well.
Sorry that I can't help you with the gdal/ogr commands.
If you don't get a helpful gdal command, give me a yell with an
example.
Jan
On Sun, Jan 20, 2013 at 9:51 PM, David Hoese <dho...@gmail.com
<mailto:dho...@gmail.com>> wrote:
I have 3 flat binary files that I would like to use to grid
data. The 3 binary files are the "scattered" image data pixels
and the other two specify the fractional column and row for
each input pixel in the output grid. So the image pixel in
the first file at offset 0 is mapped to the grid column at
offset 0 (from the columns file) and the grid row at offset 0
(from the rows file).
One way I think I can get the data gridded is to use the
"gdal_grid" utility, but I'm not really sure how to get the
flat binary files to be accepted by "gdal_grid". I thought I
could use VRT files, but I'm not exactly sure how I would do
that. I wasn't sure since the documentation here
http://www.gdal.org/ogr/drv_vrt.html says that I need to
specify a "SrcLayer", but binary files don't have layers. So
then would I need an intermediate VRT file to define layers
for the binaries? If I need an intermediate VRT maybe I
should just push the data into a geotiff (with no projection
info) and try using that? Could someone clear this up for me?
My other question is has there been any work done to make a
python wrapper for GDALGridCreate(). I found email threads
and a ticket (http://trac.osgeo.org/gdal/ticket/2023) talking
about creating one, but then conversation just stops and those
are from 5 years ago. I didn't notice anything that screamed
"this is impossible" when skimming through those threads and
the ticket. I'm also sure a lot has changed for GDAL and
numpy in the last 5 years. If it's a time thing I'm willing
to add it if someone can point me in the right direction to
start (how-to on adding to GDAL).
Thanks.
-Dave
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org <mailto:gdal-dev@lists.osgeo.org>
http://lists.osgeo.org/mailman/listinfo/gdal-dev
_______________________________________________
gdal-dev mailing list
gdal-dev@lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev