Dave Seems to me this is a point not a raster process you are looking for
e.g. How do I make a surface from a bunch of discrete points ? So instead of having 3 bands of raster you want a stream of XYZ triplets you can then submit these to gdal_grid or other tools that work with discrete data pseudo python assuming you have read your files into numpy arrays XYZ = array( zip( bandX.flatten(), bandY.flatten(), bandZ.flatten() ) ) convert XYZ to any OGR format call gdal_grid HTH Norman On Jan 22, 2013, at 10:12 PM, David Hoese <dho...@gmail.com> wrote: > 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
_______________________________________________ gdal-dev mailing list gdal-dev@lists.osgeo.org http://lists.osgeo.org/mailman/listinfo/gdal-dev