Patches for saga-6.3.0
This commit is contained in:
parent
8a4661588a
commit
86b966f108
@ -1,18 +1,23 @@
|
|||||||
{ stdenv, fetchurl, gdal, wxGTK30, proj, libiodbc, lzma, jasper,
|
{ stdenv, fetchurl, gdal, wxGTK30, proj, libiodbc, lzma, jasper,
|
||||||
libharu, opencv, vigra, postgresql, Cocoa,
|
libharu, opencv, vigra, postgresql, Cocoa,
|
||||||
unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull }:
|
unixODBC , poppler, hdf4, hdf5, netcdf, sqlite, qhull, giflib }:
|
||||||
|
|
||||||
stdenv.mkDerivation rec {
|
stdenv.mkDerivation rec {
|
||||||
name = "saga-6.3.0";
|
name = "saga-6.3.0";
|
||||||
|
|
||||||
# See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
|
# See https://groups.google.com/forum/#!topic/nix-devel/h_vSzEJAPXs
|
||||||
# for why the have additional buildInputs on darwin
|
# for why the have additional buildInputs on darwin
|
||||||
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma jasper qhull ]
|
buildInputs = [ gdal wxGTK30 proj libharu opencv vigra postgresql libiodbc lzma
|
||||||
|
jasper qhull giflib ]
|
||||||
++ stdenv.lib.optionals stdenv.isDarwin
|
++ stdenv.lib.optionals stdenv.isDarwin
|
||||||
[ Cocoa unixODBC poppler hdf4.out hdf5 netcdf sqlite ];
|
[ Cocoa unixODBC poppler hdf4.out hdf5 netcdf sqlite ];
|
||||||
|
|
||||||
enableParallelBuilding = true;
|
enableParallelBuilding = true;
|
||||||
|
|
||||||
|
patches = [ ./finite-6.3.0.patch];
|
||||||
|
|
||||||
|
CXXFLAGS = stdenv.lib.optionalString stdenv.cc.isClang "-std=c++11 -Wno-narrowing";
|
||||||
|
|
||||||
src = fetchurl {
|
src = fetchurl {
|
||||||
url = "mirror://sourceforge/project/saga-gis/SAGA%20-%206/SAGA%20-%206.3.0/saga-6.3.0.tar.gz";
|
url = "mirror://sourceforge/project/saga-gis/SAGA%20-%206/SAGA%20-%206.3.0/saga-6.3.0.tar.gz";
|
||||||
sha256 = "0hyjim8fcp3mna1hig22nnn4ki3j6b7096am2amcs99sdr09jjxv";
|
sha256 = "0hyjim8fcp3mna1hig22nnn4ki3j6b7096am2amcs99sdr09jjxv";
|
||||||
|
55
pkgs/applications/gis/saga/finite-6.3.0.patch
Normal file
55
pkgs/applications/gis/saga/finite-6.3.0.patch
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
diff --git a/src/tools/imagery/imagery_maxent/me.cpp b/src/tools/imagery/imagery_maxent/me.cpp
|
||||||
|
index c5da854..d3e9cff 100755
|
||||||
|
--- a/src/tools/imagery/imagery_maxent/me.cpp
|
||||||
|
+++ b/src/tools/imagery/imagery_maxent/me.cpp
|
||||||
|
@@ -21,7 +21,7 @@
|
||||||
|
#ifdef _SAGA_MSW
|
||||||
|
#define isinf(x) (!_finite(x))
|
||||||
|
#else
|
||||||
|
-#define isinf(x) (!finite(x))
|
||||||
|
+#define isinf(x) (!isfinite(x))
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/** The input array contains a set of log probabilities lp1, lp2, lp3
|
||||||
|
@@ -47,7 +47,7 @@ double sumLogProb(vector<double>& logprobs)
|
||||||
|
/** returns log (e^logprob1 + e^logprob2). */
|
||||||
|
double sumLogProb(double logprob1, double logprob2)
|
||||||
|
{
|
||||||
|
- if (isinf(logprob1) && isinf(logprob2))
|
||||||
|
+ if (isinf(logprob1) && isinf(logprob2))
|
||||||
|
return logprob1; // both prob1 and prob2 are 0, return log 0.
|
||||||
|
if (logprob1>logprob2)
|
||||||
|
return logprob1+log(1+exp(logprob2-logprob1));
|
||||||
|
@@ -70,8 +70,8 @@ void MaxEntModel::print(ostream& ostrm, MaxEntTrainer& trainer)
|
||||||
|
for (FtMap::iterator it = _index.begin(); it!=_index.end(); it++) {
|
||||||
|
unsigned long i = it->second;
|
||||||
|
for (unsigned long c = 0; c<_classes; c++) {
|
||||||
|
- ostrm << "lambda(" << trainer.className(c) << ", "
|
||||||
|
- << trainer.getStr(it->first) << ")="
|
||||||
|
+ ostrm << "lambda(" << trainer.className(c) << ", "
|
||||||
|
+ << trainer.getStr(it->first) << ")="
|
||||||
|
<< _lambda[i+c] << endl;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -86,7 +86,7 @@ int MaxEntModel::getProbs(MaxEntEvent& event, vector<double>& probs)
|
||||||
|
double s = 0;
|
||||||
|
for (unsigned int f = 0; f<event.size(); f++) {
|
||||||
|
FtMap::iterator it = _index.find(event[f]);
|
||||||
|
- if (it!=_index.end())
|
||||||
|
+ if (it!=_index.end())
|
||||||
|
s += _lambda[it->second+c];
|
||||||
|
}
|
||||||
|
probs[c] = s;
|
||||||
|
@@ -142,10 +142,10 @@ double MaxEntModel::getObsCounts(EventSet& events, vector<double>& obsCounts)
|
||||||
|
double ftSum = 0;
|
||||||
|
for (unsigned long j=0; j<e.size(); j++) {
|
||||||
|
FtMap::iterator it = _index.find(e[j]);
|
||||||
|
- if (it!=_index.end())
|
||||||
|
+ if (it!=_index.end())
|
||||||
|
obsCounts[it->second+c] += count;
|
||||||
|
else { // new feature, need to expand obsCounts and _lambda
|
||||||
|
- for (unsigned int k = 0; k<_classes; k++)
|
||||||
|
+ for (unsigned int k = 0; k<_classes; k++)
|
||||||
|
obsCounts.push_back(0);
|
||||||
|
obsCounts[_lambda.size()+c] += count;
|
||||||
|
addFeature(e[j]);
|
Loading…
x
Reference in New Issue
Block a user