GDAL/OGR 1.7.0 Released

GDAL logoFrank has just posted announcement about freshly released GDAL/OGR 1.7.0:

This is the first major new release since the 1.6.0 release approximately one year ago

This new version brings quite a nice collection of new drivers for raster and vector data formats:

  • New Raster Drivers: BAG, EPSILON, Northwood/VerticalMapper, R, Rasterlite, SAGA GIS Binary, SRP (USRP/ASRP), EarthWatch .TIL, WKT Raster
  • GDAL PCIDSK driver using the new PCIDSK SDK by default
  • New Vector drivers : DXF, GeoRSS, GTM, PCIDSK and VFK
  • New utilities: gdaldem, gdalbuildvrt now compiled by default
  • Add support for Python 3.X. Compatibility with Python 2.X preserved
  • Remove old-generation Python bindings
  • Significantly improved raster drivers: GeoRaster, GeoTIFF, HFA, JPEG2000 JasPer, JPEG2000 Kakadu, NITF
  • Significantly improved vector drivers: CSV, KML, SQLite/SpataiLite, VRT

Detecting Visual C++ version in NMAKE makefile

Traditionally when building GDAL/OGR, GEOS or libLAS using NMAKE users specify version of Visual C++ compiler being used as value of MSVC_VER macro. This macros is not required but it’s recommended, so NMAKE can compose best possible set of compilation and linking flags for particular version of Visual C++. For instance, command specifying Visual C++ 8.0 (Visual Studio 2005) looks like this:

nmake -f makefile.vc MSVC_VER=1400

Recently, I hacked libLAS makefiles (and GEOS makefiles too), so Visual C++ version can be determined (semi-)automatically. NMAKE 1.62 or higher reports its version as value of _NMAKE_VER macro. The solution is to defined compiler version based on version of NMAKE tool:

Update 2009-04-03: Added _NMAKE_VER number 9.00.21022.08

!IF "$(_NMAKE_VER)" == ""
MSVC_VER = 4.0
!ERROR *** Prehistoric version of Visual C++
!ELSEIF "$(_NMAKE_VER)" == "162"
MSVC_VER = 5.0
!ERROR *** Prehistoric version of Visual C++
!ELSEIF "$(_NMAKE_VER)" == "6.00.8168.0"
MSVC_VER = 6.0
MSC_VER = 1200
!ERROR *** Prehistoric version of Visual C++
!ELSEIF "$(_NMAKE_VER)" == "7.00.9466"
MSVC_VER = 7.0
MSC_VER = 1300
!ELSEIF "$(_NMAKE_VER)" == "7.10.3077"
MSVC_VER = 7.1
MSC_VER = 1310
!ELSEIF "$(_NMAKE_VER)" == "8.00.50727.42"
MSVC_VER = 8.0
MSC_VER = 1400
!ELSEIF "$(_NMAKE_VER)" == "8.00.50727.762"
MSVC_VER = 8.0
MSC_VER = 1400
!ELSEIF "$(_NMAKE_VER)" == "9.00.21022.08"
MSVC_VER = 9.0
MSC_VER = 1500
!ELSEIF "$(_NMAKE_VER)" == "9.00.30729.01"
MSVC_VER = 9.0
MSC_VER = 1500
!ELSE
MSVC_VER = 0.0
MSC_VER = 0
!ENDIF

Later macros MSVC_VER and MSC_VER can be used to report Visual C++ version:

!IF "$(MSVC_VER)" == "0.0" && "$(MSC_VER)" == "0"
!MESSAGE *** Cannot determined Visual C++ version
!ERROR *** Aborting make job
!ELSE
!MESSAGE *** Using Microsoft NMAKE version $(_NMAKE_VER)
!MESSAGE *** Using Microsoft Visual C++ version $(MSVC_VER)
!MESSAGE *** Using Microsoft C/C++ version $(MSC_VER)
!ENDIF

This is not a rocket science, but it seems to work well and it frees users from manual specification of Visual C++ version. I’m not sure how the NMAKE version numbers vary across Visual Studio versions and builds. It would be good collect these version numbers to make the solution reliable. So, I’d be thankful if readers using Visual Studio 2002, 2003, 2005 and 2008 or newer :-) could report their NMAKE versions directly to me or post them as comments below.

Wavelet Transform Software 2.04

GDAL logoThis post should be interesting to users of GDAL MSG driver – Meteosat Second Generation.

In July 2008, by the way of doing GDAL MSG driver cleanup, I’ve also applied a few fixes to the Public Wavelet Transform Decompression Library (aka Wavelet Transform Software) developed by EUMETSAT. I patched WT version 2.03 and sent my fixes to EUMETSAT.

Recently, I’ve got a message from EUMETSAT they approved the patch and will include it in upcoming release of the Wavelet Transform Decompression Library. Actually, new version 2.04 has been already published and is available to download (after registration) from the EUMETSAT website.

Modification of the source code to support a newer version of gcc compiler. gcc 4.2.x and previous versions are now supported. Upgrade fixes kindly provided by Mateusz Loskot.

Modified files with respect to previous version: CImage.h, CJBlock.h, CJBlock.cpp

It’s really nice to see my work wasn’t a waste of time :-)

libLAS 1.0.0 Beta 2

The libLAS project is getting closer to final release of 1.0.0 version. Today, Howard announced that 1.0.0 Beta 2 has been released. Source package is available at las-1.0.0b2.tar.bz2 (MD5).

libLAS is a BSD library for reading and writing LIDAR data encoded in ASPRS LAS File Format

The libLAS package include a bunch of command line utilities for processing LAS files.

The Beta 2 version, includes API for C, C++ and Python programming language. Recently, Martin Rodriguez from STEREOCARTO has contributed libLAS bindings for .NET and Mono platforms. It’s available in SVN trunk with bunch of tutorials provided. Kudos to Martin for his great work!

To everybody who works with ASPRS LAS data, we would appreciate your help in testing usability and stability of libLAS software. Don’t hesitate to post your comments to the liblas-devel mailing list.