GLEON / GLMr

R package for basic GLM model running
8 stars 16 forks source link

Add v2.2.0rc4 to GLMr #102

Open jordansread opened 8 years ago

jordansread commented 8 years ago

http://aed.see.uwa.edu.au/research/models/GLM/

Do we have source @lawinslow ?

lawinslow commented 8 years ago

Dropbox only has code up to v2.1.8. I suspect they've re-branded 2.1.8 as 2.2.0. Plus, binaries on UWA website are also behind. Dropbox code will probably be updated when they update the online windows and linux binaries.

jordansread commented 8 years ago

yeah, unless they are compiling mac now. They have it listed here as 2.2.0 beta http://aed.see.uwa.edu.au/research/models/GLM/Pages/download_bin_beta.php

jordansread commented 8 years ago

104

lawinslow commented 8 years ago

Nix isn't in there yet so I'll leave this open.

bharris-fs commented 6 years ago

Are there plans to upgrade to GLM 2.4?

lawinslow commented 6 years ago

Probably something we could do in the near future. Is there a specific need (request) or is this just curiosity?

bharris-fs commented 6 years ago

Somewhere in between. I'm evaluating GLM to see if I can use it in a water discharge temperature problem I have, and 2.4 appears to have capabilities for dealing with selective discharge and perhaps even setting the selective discharge to meet a certain temperature goal. In my situation, there are panels which can be adjusted to set the discharge levels and valves which can module both the selective discharge and a fixed-level bottom discharge. Oh, and I have a reach below the reservoir, and my temperature goal is for the bottom end of that reach, which adds yet another bit of complexity for 2.4 to handle.

I've got some constraints on the nature of that selective discharge--I don't want to adjust settings except on, say, two-week boundaries, I can't make adjustments too often, and I can't run out of cool water before the end of the summer. That sounds like an optimal control problem to me.

In https://groups.google.com/forum/#!category-topic/aquaticmodelling/glm/Jb35lFiWiw0, Chenxi pointed to an intriguing article that doesn't tell me if 2.4 can do all of that or not.

If 2.4 can't do that, then 2.2 might still be an option if I can make it do the temperature and withdrawal calculations and I figure the control settings externally.

If 2.4 would do the entire thing, I'd probably use it, all else being equal. If not, and if 2.2 would do enough, I'd probably use it. If neither work, then I'll probably try to create a far simpler lake model to build into this system (we do have temperature measurements that should help).

My immediate goal is to see if I can set up a simple system with any simple lake, with selective withdrawal, with a transport delay across the reach and solar heating through the reach, and with a simple optimizer that meets my constraints. If I can make a dummy system like that work without too much trouble, then I'd start work on modeling my specific lake and reach.

That's about as good an answer as I have right now.

lawinslow commented 6 years ago

Have you tried just using v2.4 directly? This would allow you to experiment with it without it being updated in GLMr. Any GLM version can always be run directly from the command-line.

I personally don't currently have the funded effort requiring an update effort for GLMr, so its low on the priority list. But as it is open-source, contributions via PR are always welcome, or funded or commercial efforts can hire a contractor for specific requests (message me directly if you have interest in this route).

bharris-fs commented 6 years ago

Yes, and I apparently can't figure out the calling sequence.

I just reinstalled the 64-bit version of GLM 2.4.0 plus the associated examples. (It appears that downloading the examples suffices, for they bring a copy of glm.exe.)

me@mymachine /cygdrive/b/mydirectory/softwareW7/GLM 2.4.0 Examples/GLM Examples 2.4.0/glm-bin/x64
$ ls -l
total 30968
-rwxrwx---+ 1 me Domain Users  3416576 May  7 14:38 glm.exe
-rwxrwx---+ 1 me Domain Users    91136 May  7 14:38 hdf5_hldll.dll
-rwxrwx---+ 1 me Domain Users  1988096 May  7 14:38 hdf5dll.dll
-rwxrwx---+ 1 me Domain Users  1263360 May  7 14:38 libifcoremd.dll
-rwxrwx---+ 1 me Domain Users  3493632 May  7 14:38 libmmd.dll
-rwxrwx---+ 1 me Domain Users  1092608 May  7 14:38 libmmd.pdb
-rwxrwx---+ 1 me Domain Users   869888 May  7 14:38 netcdf.dll
-rwxrwx---+ 1 me Domain Users 19370752 May  7 14:38 svml_dispmd.dll
-rwxrwx---+ 1 me Domain Users    41472 May  7 14:38 szip.dll
-rwxrwx---+ 1 me Domain Users    61440 May  7 14:38 zlib1.dll

Note the timestamp on the downloaded files.

Using Cygwin, I cd into the EllenBrook directory and run the 64-bit .bat file:

me@mymachine /cygdrive/b/mydirectory/softwareW7/GLM 2.4.0 Examples/GLM Examples 2.4.0/glm-bin/x64
$ cd ../../Simulations/EllenBrook/
me@mymachine /cygdrive/b/mydirectory/softwareW7/GLM 2.4.0 Examples/GLM Examples 2.4.0/Simulations/EllenBrook
$ ./glm_x64.bat

B:\CustomerStrategyAndAnalytics\Customer Analytics\Staff\Bill\softwareW7\GLM 2.4.0 Examples\GLM Examples 2.4.0\Simulations\EllenBrook>..\..\glm-bin\x64\glm.exe --xdisp

B:\CustomerStrategyAndAnalytics\Customer Analytics\Staff\Bill\softwareW7\GLM 2.4.0 Examples\GLM Examples 2.4.0\Simulations\EllenBrook>pause
Press any key to continue . . .

me@mymachine /cygdrive/b/mydirectory/softwareW7/GLM 2.4.0 Examples/GLM Examples 2.4.0/Simulations/EllenBrook
$ ls -l
total 48
drwxrwx---+ 1 me Domain Users     0 May  7 14:38 bcs
-rwxrwx---+ 1 me Domain Users    46 May  7 14:38 glm_x64.bat
-rwxrwx---+ 1 me Domain Users    46 May  7 14:38 glm_x86.bat
-rwxrwx---+ 1 me Domain Users 18910 May  7 14:38 glm2.nml
drwxrwx---+ 1 me Domain Users     0 May  7 14:38 output
-rwxrwx---+ 1 me Domain Users  1008 May  7 14:38 plots.nml
-rwxrwx---+ 1 me Domain Users  7814 May  7 14:38 readme.html
-rwxrwx---+ 1 me Domain Users  5717 May  7 14:38 readme.md

me@mymachine /cygdrive/b/mydirectory/softwareW7/GLM 2.4.0 Examples/GLM Examples 2.4.0/Simulations/EllenBrook
$ ls -al output/
total 51880
drwxrwx---+ 1 me Domain Users        0 May  7 14:38 .
drwxrwx---+ 1 me Domain Users        0 May  7 14:38 ..
-rwxrwx---+ 1 me Domain Users   331240 May  7 14:38 lake.csv
-rwxrwx---+ 1 me Domain Users 52673884 May  7 14:38 output.nc
-rwxrwx---+ 1 me Domain Users    43821 May  7 14:38 overflow.csv
-rwxrwx---+ 1 me Domain Users    68636 May  7 14:38 WQ_17.csv

Note that the output files have the same timestamp as the download, suggesting that nothing happened.

One thing that concerns me is that ./glm_x64.bat turns into ..\..\glm-bin\x64\glm.exe --xdisp. That sounds a bit like it's expecting the X Window System to be available. I can do that, but I thought the documentation might have called that out, were my interpretation correct.

What am I missing?

lawinslow commented 6 years ago

No, I don't think there is any expectation of X Window system if you're running the windows version directly.

Don't use cygwin if you're on Windows. Binaries are compiled directly for Windows. *.bat files are windows batch files, not shell scripts. I just downloaded and ran the Sparkling example online with v2.4 from the commandline, no problems.

image

bharris-fs commented 6 years ago

Thanks! That's encouraging! I almost never think of cmd.exe, it seems.

I tried it, and I still see problems.

I'm using a new cmd.exe window that I just opened, and I've cd'd into the Sparkling folder of the new GLM examples I downloaded and installed yesterday. I haven't done anything in that directory except to try this once yesterday using cygwin, so nothing shold have been changed since it was downloaded

image

image

I checked: glm.exe is in that directory:

image

That appears there's a 32-bit application trying to load a 64-bit dll, right? Do you see anything obvious I'm doing wrong?

lawinslow commented 6 years ago

Try installing the visual C++ runtime https://www.microsoft.com/en-us/download/details.aspx?id=48145

bharris-fs commented 6 years ago

That sounded like a good idea, but it didn't help.

I downloaded the 64-bit version, tried it as shown above, and got the same error. I rebooted the machine, in case that was necessary, and tried again--same error.

I'll see if my local help desk can offer any suggestions, too.

bharris-fs commented 6 years ago

I spent some time with my local help desk to see if they could help me. They temporarily removed all restrictions on what I could run, in case it was in any way a permissions issue, and that didn't help. We reviewed the list at https://www.techadvisor.co.uk/how-to/windows/application-error-0xc000007b-3613164/ and tried most of those actions, but that was unsuccessful. I can't upgrade past dotNet 4.5.2, I'm told, because that's required for other software here; could that be the problem?

If you happen to have any other ideas that are easy enough, I'll be glad to try them; otherwise, i think I'm at an impasse. I appreciate your helping me to get this far, and GLM obviously works on other machines.

bharris-fs commented 6 years ago

Quick update: when I run glm_x64.bat, I get the pop-up I showed earlier. If I try glm_x86.bat, I get an "Open File - Security Warning". After clicking "Run", I get a pop-up that says "... \glm-bin\x86\glm.exe is not a valid Win32 application."

lawinslow commented 6 years ago

@bharris-fs not sure. I don't know what the issue there is. Not something I have encountered.