This archive contains answers to questions sent to Unidata support through mid-2025. Note that the archive is no longer being updated. We provide the archive for reference; many of the answers presented here remain technically correct, even if somewhat outdated. For the most up-to-date information on the use of NSF Unidata software and data services, please consult the Software Documentation first.
=============================================================================== Robb Kambic Unidata Program Center Software Engineer III Univ. Corp for Atmospheric Research address@hidden WWW: http://www.unidata.ucar.edu/ =============================================================================== ---------- Forwarded message ---------- Date: Sun, 18 Oct 2009 13:13:12 +0200 From: Konrad Hinsen <address@hidden> To: address@hidden Subject: Re: [netcdf-java] Linear algebra on data read from a netCDF file On 16 Oct 2009, at 14:06, Konrad Hinsen wrote:
Thanks! This should at least be efficient. I quickly checked the Colt implementation, which does have a constructor for its array class that takes the plain Java array plus the shape information, so at least in theory this should be simple. If/when I get it to work, I'll post my solution here.
Here is a working example (Clojure source code) for inverting a matrix read from a netCDF file using Colt:
(ns netcdf-read (:import (ucar.nc2 NetcdfFile) (cern.colt.matrix.tdouble.impl DenseDoubleMatrix2D) (cern.colt.matrix.tdouble.algo DenseDoubleAlgebra))) (defn unidata-to-colt [#^ucar.ma2.ArrayDouble$D2 array] (let [java-array-1d (.get1DJavaArray array Double) [rows, cols] (.getShape array)] (new DenseDoubleMatrix2D rows cols java-array-1d 0 0 cols 1 false)))(let [matrix (with-open [ncfile (NetcdfFile/open "/Users/hinsen/Temp/matrix.nc")]
(.read (.findVariable ncfile "matrix"))) colt-matrix (unidata-to-colt matrix) la (new DenseDoubleAlgebra) inverse (.inverse la colt-matrix)] (prn inverse))For my current needs, conversion of 2D double arrays is sufficient, but this could of course be generalized to ranks 1 and 3 (that's all there is in Colt) and other element types.
Konrad. _______________________________________________ netcdf-java mailing list address@hiddenFor list information or to unsubscribe, visit: http://www.unidata.ucar.edu/mailing_lists/