[gdal-dev] How to represent multi-dimensional array

Jason Roberts jason.roberts at duke.edu
Fri Jun 18 09:48:14 EDT 2010


Chris,

I have some experience trying to get ArcGIS to work well with time series
satellite imagery and 4D ocean models (e.g. HYCOM, ROMS). Similar to GDAL,
it does not appear that multidimensionality was designed into the current
versions of ArcGIS. Like GDAL, ArcGIS appears mainly designed to work with
2D images. Both support multi-band 2D images very well, and this can be used
to at least access 3D data although there is not good support for
understanding the value of the z coordinate.

As far as I am aware, ESRI is not currently making significant investments
in the area of multidimensional data. I am part of a working group initiated
by ESRI and led by an ESRI program manager (Nawajish Noman) that is trying,
in essence, to get the community of users who use both ArcGIS and netCDF to
develop some Python geoprocessing tools for ArcGIS that provide more
functionality than out-of-box tools already in ArcGIS. ESRI did not provide
any of their own developers. I donated some dev time and prototyped a tool
for them using the netcdf4-python package and others are carrying on from
there. I do not believe this project will result in anything dramatically
new but it might yield a few additional useful geoprocessing tools. I have
reduced my participation after concluding that it makes more sense to focus
on the development of my own project (see below).

Here are some options I'm aware of with ArcGIS:

1. The Make NetCDF Raster Layer tool can represent 3D netCDF variables as
multiband raster layers. Using the Dimension Values parameter, you can slice
a 3D slab out of a 4D or higher-dimensional variable. This tool might be
sufficient for your purposes. The trick is your netCDF has to meet a bunch
of constraints for ArcGIS to recognize it. It has to have square cells. It
has adhere to the CF or COARDS conventions (I forget which versions) and
have all the right attributes. You can learn more about this in the ArcGIS
Desktop Help under "netCDF data, FAQs about". Also see "netCDF data,
animating" and the other topics under "netCDF data".

2. Under contract to NOAA, Applied Science Associates built a couple of
tools that might be useful: the Environmental Data Connector (EDC) and
TimeSlider Extension. Download from
http://www.asascience.com/software/downloads/index.shtml, see other parts of
the website for more info. EDC was built to download multidimensional
OPeNDAP datasets into multiband rasters. TimeSlider is a UI extension to
help with playback of time-series data. I think they can both work with
netCDFs directly, not just OPeNDAP. Also look at ASA ViewNcDap, which can
display multidimensional netCDF variables. (Although this last program is
not an ArcGIS extension, and there are many other programs in the world that
are also not ArcGIS extensions and that probably do as good or better a
job.)

3. If you don't want to use netCDFs, you can fake multidimensionality for
some scenarios by building a raster catalog with columns for the time and
depth. For example, you can build an animation that selects slices by date
as the animation plays through a range of dates.

4. My group, the Duke University Marine Geospatial Ecology Lab, is currently
building 3D and 4D awareness into a collection of tools we publish, Marine
Geospatial Ecology Tools (MGET, see
http://code.nicholas.duke.edu/projects/mget), built in Python on GDAL and
other FOSS packages. You can download MGET today, but the 3D and 4D
awareness will not be there for several months so it probably won't be
useful to you in the present form. When complete, these tools will allow you
to run some common marine ecology scenarios directly from ArcGIS, such as
building climatologies, sampling 3D and 4D datasets at points in time and
space, identifying fronts, etc.

Good luck,

Jason


-----Original Message-----
From: gdal-dev-bounces at lists.osgeo.org
[mailto:gdal-dev-bounces at lists.osgeo.org] On Behalf Of Christopher Barker
Sent: Thursday, June 17, 2010 3:16 PM
To: gdal-dev at lists.osgeo.org
Subject: [gdal-dev] How to represent multi-dimensional array

Hi folks,

I have a dataset that is a 4-dimensional array of values: time,x,y,z

We're currently using netcdf to store it, which is well suited to this 
kind of data.

However, we also need to get it into a GIS (Arc in this case), and I'm 
trying to find a good way to do that.

Both Arc and gdalinfo do strange things if I simply point them at the 
netcdf file. GDAL seems to (arbitrarily?) see it as a 9064 band data 
set, so it is taking particular slice (I think I'm getting a bunch of 
(time, z) 2-d bands.

Anyway, I suspect that if I re-arrange the axis in the netcdf file, I 
might get something more reasonable, but my question is:

What is a good format to ex[press this to a GIS system?

I'm imaging multiple files, maybe geo-tiff, but how to I express time 
and elevation in a way that is natural to GIS?

thanks for your thoughts,

-Chris


-- 
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R            (206) 526-6959   voice
7600 Sand Point Way NE   (206) 526-6329   fax
Seattle, WA  98115       (206) 526-6317   main reception

Chris.Barker at noaa.gov
_______________________________________________
gdal-dev mailing list
gdal-dev at lists.osgeo.org
http://lists.osgeo.org/mailman/listinfo/gdal-dev



More information about the gdal-dev mailing list