brews / co2syspy Goto Github PK
View Code? Open in Web Editor NEWA Python interpretation of CO2SYS
License: GNU General Public License v3.0
A Python interpretation of CO2SYS
License: GNU General Public License v3.0
Originally posted by @aholdsworth in #4 :
The code only seems to work for scalar inputs. I would have liked to use it for 3d fields, but it's not yet working for even the following simple test case. This is example 6 found here (https://github.com/jamesorr/CO2SYS-MATLAB/blob/master/notebooks/CO2SYS-Matlab_tutorial.ipynb) for the matlab version:
par1type = 1; # The first parameter supplied is of type "1", which is "alkalinity" par1 = 2300; # value of the first parameter par2type = 2; # The first parameter supplied is of type "1", which is "DIC" par2 =np.arange(2000,2200,5) # value of the second parameter, which is a long vector of different DIC's! sal = 35; # Salinity of the sample tempin = 10; # Temperature at input conditions presin = 0; # Pressure at input conditions tempout = 0; # Temperature at output conditions - doesn't matter in this example presout = 0; # Pressure at output conditions - doesn't matter in this example sil = 50; # Concentration of silicate in the sample (in umol/kg) po4 = 2; # Concentration of phosphate in the sample (in umol/kg) pHscale = 1; # pH scale at which the input pH is reported ("1" means "Total Scale") - doesn't matter in this example k1k2c = 4; # Choice of dissociation constants K1 and K2 ("4" means "Mehrbach refit") kso4c = 1; # Choice of KSO4 ("1" means "Dickson") print('par2', par2) A =co2sys.CO2SYS(par1,par2,par1type,par2type,sal,tempin,tempout,presin,presout,sil,po4,pHscale,k1k2c,kso4c)
We've only written co2syspy
for scalar input and broadcasting support would be nice.
In the meantime, as a quick fix, the simplest option would be to use something like a for-loop for the different input.
Right now our OSX travis-ci script is failing with error:
�[31mError:�[0m python 2.7.14 is already installed
To upgrade to 3.6.5, run `brew upgrade python`
travis_time:end:0487433c:start=1523325290285842000,finish=1523325379170473000,duration=88884631000
�[0K
�[31;1mThe command "if [[ "$JOB_OS" == "MacOSX" ]]; then brew update; brew install python3; fi" failed and exited with 1 during .�[0m
Your build has been stopped.
/Users/travis/.travis/job_stages: line 166: shell_session_update: command not found
I think this has something to do with homebrew now using python3 by default...
Need more comprehensive testing harness.
Right now I just have one basic smoke test for my specific use-case. Should look at coverage and be sure to write tests that at least cover all the major use-cases based on input into co2sys.CO2SYS()
.
README needs to be put as long_description
in setup.py
co2sys.CO2SYS()
needs more pythony docstring.
Right now it's just a commented block based on the original MATLAB.
CO2SYS output should be own data class (use attrs
). Be sure to write good docstring describing each parameters based on niceheaders
.
Write more pythonic UI as alternative to co2sys.CO2SYS()
.
I think much of the input could be streamlined. The backend would need to remain the same until the entire program is put in a testing harness and refactored.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.