Introducing netCDF Explorer

Today we announce the release of a new product, netCDF Explorer.

netCDF Explorer is multi-platform graphical browser for netCDF files. netCDF Explorer can browse files locally or remotely, by means of OPeNDAP.

It is available at

http://www.space-research.org/

Downloads are available for Mac, Windows and Linux. Source code is available at GitHub.

https://github.com/pedro-vicente/netcdf-explorer

netCDF Explorer follows the design of our flagship product, HDF Explorer.

HDF Explorer recently reached the mark of 30,000 users. It has become the most widely acclaimed browser for HDF files.

HDF Explorer was developed only for the Windows platform, and one request we frequently have is the availability for Mac and Linux. When HDF Explorer was written, there was not available a good (or any, for that matter), cross platform GUI framework written in C++.

We recently came across with an excellent GUI framework that is a joy to work with, that allows the deployment to Mac, Linux, and Windows with one source code base. So, a project that was on the back burner for many years, quickly came to light in the short time frame of one month. The first product is netCDF Explorer.

Due to the short time of development, netCDF Explorer can be considered as a simple start with a lot of room to grow.

Nonetheless we decided to release it at this time to get a feeling of netCDF/HDF/OpenDAP user's comments, suggestions, or any problems they may encounter examining their own netCDF files.

So, please send any comments, suggestions, problems found.

Other tools for browsing netCDF files:

https://www.unidata.ucar.edu/software/netcdf/docs/netcdf_tools.html

Enjoy

···

----------------------
Pedro Vicente
pedro.vicente@space-research.org
http://www.space-research.org/
https://twitter.com/_pedro__vicente

Building from source is not very user-friendly at this time , sorry, I did not want to add any dependencies to the git repo

Here are some notes, if you or anyone still cannot build after this, send me a private email

1) To build in Linux / Mac

GNU Autoconf is used

1A) Using Bakefile

You need Bakefile 0.29, install from source

http://bakefile.org/

This file was used to generate the gnu "Makefile.in" from a "bakefile"

https://github.com/pedro-vicente/netcdf-explorer/blob/master/explorer.bkl

NOTE1 :
Bakefile is *ONLY* used to generate "Makefile.in"
If you want to avoid this, just modify the supplied "Makefile.in" regarding the hardcoded paths to HDF5 and netCDF

NOTE 2:
HDF5 and netCDF dependencies were build from source with GNU autoconf
Using the Linux packages for these will probably work too

I use ubuntu

sudo apt-get install < add here HDF5 , netCDF , curl, and probably other dependencies that I forgot now; if you get some errors, that will tell you :slight_smile: >

If you want to give a try to Bakefile, I *recommend* it

I found Bakefile to be a very good alternative to CMake , because , unlike CMake, it has a learning curve of about 10 minutes...
Just by looking at the file explorer.bkl, about 17 lines,
one can guess what it does , just a list of source files, and extra libraries, that's really all we need... no hard to guess meaning CMake macros here

usage is

bakefile -v -f autoconf explorer.bkl

1B) Using wxWidgets

You need wxWidgets

https://www.wxwidgets.org/

This is where the GNU Autoconf build is located

The best way is to include the netCDF Explorer code inside the "samples" folder,
say in a folder called "explorer"

modify "configure.in" to have this extra line

SAMPLES_SUBDIRS="$SAMPLES_SUBDIRS explorer"

where "explorer" is the folder you made

redo the autoconf stuff

./autogen.sh
./configure
make
cd samples
make

this should do it on Linux/Mac

2) To build in Windows

I used Visual Studio 2013

2A) Modify the wxWidgets Visual Studio solution to have one more "samples" project, say "explorer" (just copy from the others or make a new one), and add the sources

2B) You need Windows Visual Studio builds of all the dependencies : HDF5, netCDF, curl

in the curl site

http://curl.haxx.se/

the latest distro has Visual Studio ready solutions , which is fantastic

Unfortunately the HDF Group and the netCDF folks do not supply a Visual Studio ready solution

So, you will have to generate the solution using Cmake ...

for example, for HDF5

cd build
cmake -C ../config/cmake/cacheinit.cmake -D"ZLIB_INCLUDE_DIR:PATH=K:\zlib\V1.2.5" -D"ZLIB_LIBRARY:FILEPATH=K:\zlib\V1.2.5\windows\static\zlib125d.lib" -D"BUILD_SHARED_LIBS:BOOL=OFF" -D"BUILD_STATIC_EXECS=ON" -D"BUILD_STATIC_CRT_LIBS=ON" -D"TARGET_STATIC_CRT_FLAGS=ON" ..

for netCDF

cd build
cmake -C ../cmake/ConfigUser.cmake -D"NC_USE_STATIC_CRT=ON" -D"BUILD_SHARED_LIBS=OFF" -D"ENABLE_DLL=OFF" -D"HDF5_INCLUDE_DIR=K:\data\hdf5-1.8.15\src" -D"HDF5_LIB=K:\data\hdf5-1.8.15\build\bin\Debug\libhdf5_D.lib" -D"HDF5_HL_LIB=K:\data\hdf5-1.8.15\build\bin\Debug\libhdf5_hl_D.lib" -D"ZLIB_INCLUDE_DIR:PATH=K:\zlib\V1.2.5" -D"ZLIB_LIBRARY:FILEPATH=K:\zlib\V1.2.5\windows\static\zlib125d.lib" -D"ENABLE_DAP=ON" -D"CURL_LIBRARY=K:\curl-7.45.0\build\Win32\VC12\LIB Debug\libcurld.lib" -D"CURL_INCLUDE_DIR=K:\curl-7.45.0\include" ..

Hope this helps

One last thing, if you want to avoid future headaches and lost time, use static build for all the builds .

This is for both Windows *and* Linux ...
ah, that just reminded me that I had to build in Linux with
the C++ standard library as a static build ( -static-libgcc if I recall it's the option) because when I tried my ubuntu build on other systems it went to look for a missing dynamic library
Just hack the option into Makefile.in

The supplied Linux binary is X86_64 by the way

There may be something missing , send me a private email if something fails :slight_smile:

···

----------------------
Pedro Vicente
pedro.vicente@space-research.org
http://www.space-research.org/

----- Original Message ----- From: "Orion Poplawski" <orion@cora.nwra.com>
To: "Pedro Vicente" <pedro.vicente@space-research.org>; <netcdfgroup@unidata.ucar.edu>; <hdf-forum@lists.hdfgroup.org>; <openldap-devel@openldap.org>; "openldap" <openldap-technical@openldap.org>; <nexus@nexusformat.org>; <cf-metadata@cgd.ucar.edu>
Sent: Friday, November 06, 2015 4:01 PM
Subject: Re: [netcdfgroup] Introducing netCDF Explorer

On 11/01/2015 11:37 PM, Pedro Vicente wrote:

Today we announce the release of a new product, netCDF Explorer.

netCDF Explorer is multi-platform graphical browser for netCDF files. netCDF
Explorer can browse files locally or remotely, by means of OPeNDAP
<http://www.opendap.org/>.

It is available at

http://www.space-research.org/

Downloads are available for Mac, Windows and Linux. Source code is available
at GitHub.

https://github.com/pedro-vicente/netcdf-explorer__

netCDF Explorer follows the design of our flagship product, HDF Explorer.

*HDF Explorer recently reached the mark of 30,000 users. It has become the
most widely acclaimed browser for HDF files.*

*HDF Explorer was developed only for the Windows platform, and one request we
frequently have is the availability for Mac and Linux. When HDF Explorer was
written, there was not available a good (or any, for that matter), cross
platform GUI framework written in C++.*

We recently came across with an excellent GUI framework that is a joy to work
with, that allows the deployment to Mac, Linux, and Windows with one source
code base. So, a project that was on the back burner for many years, quickly
came to light in the short time frame of one month. The first product is
netCDF Explorer.

Due to the short time of development, netCDF Explorer can be considered as a
simple start with a lot of room to grow.

Nonetheless we decided to release it at this time to get a feeling of
netCDF/HDF/OpenDAP user�s comments, suggestions, or any problems they may
encounter examining their own netCDF files.

So, please send any comments, suggestions, problems found.

How the heck are you supposed to build this thing from source?

$ bakefile -f gnu explorer.bkl
/export/home/orion/redhat/netcdf-explorer-0.1/netcdf-explorer-6cd807a8db1b02196371115689f248456d322e71/explorer.bkl:4:
error: can't find file '../../build/bakefiles/common_samples.bkl' in
/export/home/orion/redhat/netcdf-explorer-0.1/netcdf-explorer-6cd807a8db1b02196371115689f248456d322e71:/usr/share/bakefile/rules:/usr/share/bakefile/rules/modules:/usr/share/bakefile/output:/usr/share/bakefile
   included from
/export/home/orion/redhat/netcdf-explorer-0.1/netcdf-explorer-6cd807a8db1b02196371115689f248456d322e71/explorer.bkl:4

--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane orion@nwra.com
Boulder, CO 80301 http://www.nwra.com

Orion

I added a GNU autoconf build

Install dependencies:

For Linux Ubuntu

sudo apt-get install libwxgtk3.0-dev
sudo apt-get install libnetcdf-dev netcdf-bin netcdf-doc

Get source:

git clone https://github.com/pedro-vicente/netcdf-explorer.git

Build with:

autoreconf -vfi
./configure
make

For Mac:

Mac does not include GNU Autoconf

So, you need to install it from a package manager. I used HomeBrew

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install\)"

brew install autoconf
brew install automake

On Mac I installed HDF5, netCDF and wxWidgets from source

The build system uses

nc-config
wx-config

Both are installed from netCDF and wxWidgets

You can use these options for ./configure

--with-wx-config=PATH Use the given PATH to wx-config
--with-nc-config=PATH Use the given PATH to nc-config

For the Mac wxWidgets build I used

../configure --prefix=/Volumes/Home/wx/build-mac --with-macosx-version-min=10.7 --disable-webviewwebkit \
CXXFLAGS="-stdlib=libc++ -std=c++11" OBJCXXFLAGS="-stdlib=libc++ -std=c++11" CPPFLAGS="-stdlib=libc++" \
LDFLAGS="-stdlib=libc++" CXX=clang++ CXXCPP="clang++ -E" CC=clang CPP="clang -E"

···

----------------------
Pedro Vicente
pedro.vicente@space-research.org

----- Original Message ----- From: "Orion Poplawski" <orion@cora.nwra.com>
To: "Pedro Vicente" <pedro.vicente@space-research.org>; <netcdfgroup@unidata.ucar.edu>; <hdf-forum@lists.hdfgroup.org>; <openldap-devel@openldap.org>; "openldap" <openldap-technical@openldap.org>; <nexus@nexusformat.org>; <cf-metadata@cgd.ucar.edu>
Sent: Friday, November 06, 2015 4:01 PM
Subject: Re: [netcdfgroup] Introducing netCDF Explorer

On 11/01/2015 11:37 PM, Pedro Vicente wrote:

Today we announce the release of a new product, netCDF Explorer.

netCDF Explorer is multi-platform graphical browser for netCDF files. netCDF
Explorer can browse files locally or remotely, by means of OPeNDAP
<http://www.opendap.org/&gt;\.

It is available at

http://www.space-research.org/

Downloads are available for Mac, Windows and Linux. Source code is available
at GitHub.

https://github.com/pedro-vicente/netcdf-explorer__

netCDF Explorer follows the design of our flagship product, HDF Explorer.

*HDF Explorer recently reached the mark of 30,000 users. It has become the
most widely acclaimed browser for HDF files.*

*HDF Explorer was developed only for the Windows platform, and one request we
frequently have is the availability for Mac and Linux. When HDF Explorer was
written, there was not available a good (or any, for that matter), cross
platform GUI framework written in C++.*

We recently came across with an excellent GUI framework that is a joy to work
with, that allows the deployment to Mac, Linux, and Windows with one source
code base. So, a project that was on the back burner for many years, quickly
came to light in the short time frame of one month. The first product is
netCDF Explorer.

Due to the short time of development, netCDF Explorer can be considered as a
simple start with a lot of room to grow.

Nonetheless we decided to release it at this time to get a feeling of
netCDF/HDF/OpenDAP user�s comments, suggestions, or any problems they may
encounter examining their own netCDF files.

So, please send any comments, suggestions, problems found.

How the heck are you supposed to build this thing from source?

$ bakefile -f gnu explorer.bkl
/export/home/orion/redhat/netcdf-explorer-0.1/netcdf-explorer-6cd807a8db1b02196371115689f248456d322e71/explorer.bkl:4:
error: can't find file '../../build/bakefiles/common_samples.bkl' in
/export/home/orion/redhat/netcdf-explorer-0.1/netcdf-explorer-6cd807a8db1b02196371115689f248456d322e71:/usr/share/bakefile/rules:/usr/share/bakefile/rules/modules:/usr/share/bakefile/output:/usr/share/bakefile
   included from
/export/home/orion/redhat/netcdf-explorer-0.1/netcdf-explorer-6cd807a8db1b02196371115689f248456d322e71/explorer.bkl:4

--
Orion Poplawski
Technical Manager 303-415-9701 x222
NWRA, Boulder/CoRA Office FAX: 303-415-9702
3380 Mitchell Lane orion@nwra.com
Boulder, CO 80301 http://www.nwra.com

Chris

Thanks for the suggestion

We added this feature. To build:

Get source and switch to release branch:

git clone https://github.com/pedro-vicente/netcdf-explorer.git
git checkout release

Build with:

./configure
make

The logic for this behaviour is:

1) Have a master branch with only the upstream files.
Upstream files are files used to auto-generate other files.
These are the files that we write and commit often,
so it's important to focus on them, for example to see the differences in the web interface of git.

2) The release branch has all the extra user-ready to compile files, generated by autoreconf.

···

----------------------
Pedro Vicente
pedro.vicente@space-research.org
http://www.space-research.org/
  ----- Original Message -----
  From: Chris Barker
  To: Pedro Vicente
  Cc: netcdfgroup@unidata.ucar.edu ; hdf-forum@lists.hdfgroup.org ; nexus@nexusformat.org ; cf-metadata@cgd.ucar.edu ; Orion Poplawski
  Sent: Monday, November 09, 2015 1:33 PM
  Subject: Re: [CF-metadata] [netcdfgroup] Introducing netCDF Explorer

  getting kind of off topic, but...

    Build with:

    autoreconf -vfi
    ./configure
    make

    For Mac:

    Mac does not include GNU Autoconf

  the usual convention is for teh developer to run autotools, and add the results to the source release, so end users can jump straight to:

  ./configure

  It's be great is you could do this for this project.

  -CHB

  --

  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@noaa.gov