lo-co / atm-py Goto Github PK
View Code? Open in Web Editor NEWSet of python packages for processing atmospheric data.
License: MIT License
Set of python packages for processing atmospheric data.
License: MIT License
I haven't thought this out to much yet, but I think that we might be able to provide a nicer API for the sampling efficiency. My suggestion is to have a root class that is a composition of it's children. The root class has a single method get_efficiency
or something like that that will serve as the signature for returning an efficiency or array of efficiencies. This class might also have some attributes such as diameter and efficiency. Then, the children would implement the details and decorate the parent with methods and attributes specific to that implementation. The get_efficiency in the parent object would then be a product of the overriden methods in the children. This sounds confusing so I will try to show what I mean. All of Hagen's calculations in the existing module would remain the same.
So, there is Mie code in a couple of places in the libarary: in the POPS instrument folder and in it's own folder. The POPS implementation is kind of chaotic and not well documented while the other library is pulled from an external library and likely needs some investigating. Gavin - you have done a lot of work with Mie code - do you think you could implement something? My suggestion is to create a new branch based on the ''NewStructure'' branch and add routines in their own folder under aerosols/phys/opt (I realize that is not there right this moment, so we need to add this too).
It looks like far and away the most popular format for documenting python modules is reStructuredText with Sphinx for generating the documentation for this. Any thoughts?
Also, starting a hacking guide in the top-level-directory in the NewStructure branch...
As it says. Will override in Air
to calculate as a function of t
and p
as well as water content as in NewStructure
.
I guess that should go into .gitignore?
We will run unit tests for all new code. Add tests that can be run via nose
or the python UnitTest
object. nose
allows us to run tests from the top level and I believe we can run these automatically in GH.
Add tests
folder to each module. These folders should not be modules themselves (i.e. there should be no __init.py__
in the folder). I will provide some examples of this and explain how to do this in HackThis
.
Move water saturation equations into file called water.py
(or some variant thereof), changing name of atmosphere.py
to gas_props.py
.
So, my SMPS
module needs a lot of work and I noticed that I have imported the following libraries:
tkinter
matplotlib
pandas
I use tkinter
to produce a file dialog, matplotlib
to plot some results and pandas
to read in data. My gut feeling is that none of these are necessary and that basically we want to provide tools for analysis and not a graphical package or a package tied to a specific data format. In this instance, the use of pandas.read_csv
presupposes a file format that is not some kind of industry standard. In addition, tkinter
is kind of tacked on to allow the user to choose a file but there is also a tool for programatically allowing the user to provide data files. So, my conclusion is that none of this is necessary for this module. My question is - when is it appropriate to require external modules?
Everyone! :-)
give some suggestions about how to rearrange the repository!!!!
Obviously as described in #3 we need some standardization. Discuss this here.
Update script to install using miniconda as found here.
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.