1

I'm trying to use Global Land Cover Characterization data from the USGS:

http://edc2.usgs.gov/glcc/fao/data_specifications.php

It is in the Interrupted Goode Homolosine projection. As I am working on a continental scale (South America) I need to reproject to WGS84. I've tried using the Goode Homolosine projection (land) in ArcGIS but the resulting raster was offset to the East by around 11km.

I shifted this using the header file of the original .bil file. I need to clip it down to the area of my study site and so used a snap[ raster of existing data (worldclim data). The snap did not work and my GLCC raster is still warped and does not line up with underlying rasters. I have seen the related questions on GIS stack exchange but none of those appear to work either. I'm running ArcGIS10 sp1.

hacky fix

Okay, here's what I did to get the forest cover Global Land Cover Characterization Data to line up with Worldclim data (for Latin America in WGS84 (geographic) projection).

Took the global file from the USGS website, added the header to the same folder and then projected to Goode Homolosine (land) in Arc Catalog.

Modified the Goode Homolosine projection to use the Sphere (Arc Info) as it's spheroid.

Clipped the bit I needed and projected it to WGS84 (Geographic).

I then resampled the GLCC data as it was at 1000m resolution whereas the worldclim stuff is in 30 arc seconds. Before resampling I checked all the environments and added a snap raster (the worldclim ascii I wanted it to match), extents, output coords, cell size, etc).

They now line up. Hacky, as I said but it worked. And just for the record, I'm working with MaxEnt (hence the ASCII requirement).

There is word on the wire that you need to turn off background geoprocessing in order to work around a bug in 10 with the snap raster option. Mine was off anyway. In addition, you can resample first and then add the snap raster to a "copy raster" command. Might be safer that doing it all in one.

2

The data specifications page says that the earth model aka geographic coordinate system aka datum is based on a sphere of 6370997.0 m. The Goode Homolosine (Land) definition in ArcGIS is based on WGS 1984. When I modify the definition to use Sphere (ArcInfo), which matches the data specification information, I can overlay country boundaries quite well.

  • thanks, I'll give it a try. However, working with rasters overlaying "quite well" won't cut the mustard. It'll need to be precise. Could be a good starting point though. – Oliver Burdekin Jul 25 '13 at 20:26
  • On the (admittedly few) places I checked, the country boundary was passing through the 1 km^2 pixel that was the boundary of the country, so yeah, quite well! – mkennedy Jul 25 '13 at 20:31
  • Alas, it hasn't worked mkennedy. Still skewed and still off by varying degrees. – Oliver Burdekin Jul 25 '13 at 20:57
  • Weird. What's the resolution of the worldclim data? How do both overlay with vector data? What's the area of use--maybe I'm missing a bad section in the projection. – mkennedy Jul 25 '13 at 21:37
0

It seems that this is an old topic but I've decided to share my recent experience with the same issue...
Hope it helps!
I've downloaded the Global Land Cover Characterization (GLCC) Data Set from the USGS - EarthExplorer portal (in the Interrupted Goode Homolosine projection) and tried to open it with QGIS without success (shifted location). I've used both file formats (BIL and GeoTIFF).
After taking a close look at the product metadata I found that the Upper Left pixel coordinates X/Y seems to be swapped.
To fix this problem I've made the following changes:

  • BIL - Edit the header (.hdr) files and swap the ULXMAP and ULYMAP values:

BYTEORDER I
LAYOUT BIL
NROWS 17347
NCOLS 40031
NBANDS 1
NBITS 8
BANDROWBYTES 40031
TOTALROWBYTES 40031
ULXMAP -20015000
ULYMAP 8673000
XDIM 1000
YDIM 1000

  • GeoTIFF - Use gdal-python to change the GeoTransform value:

from osgeo import gdal for filename in ["gbbatsg20.tif", "gbigbpg20.tif", "gbogeg20.tif", "gbsbmg20.tif", "gblulcg20.tif", "gbsbm2g20.tif", "gbvlg20.tif"]: gdal_dataset = gdal.Open(filename, gdal.GA_Update) gdal_dataset.SetGeoTransform((-20015500.0, 1000.0, 0.0, 8673500.0, 0.0, -1000.0)) gdal_dataset = None

This method worked for me but I have no confirmation from the data providers (USGS) of its validity...

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.