Giter VIP home page Giter VIP logo

basd's People

Contributors

crvernon avatar noahprime avatar

Watchers

 avatar  avatar  avatar

basd's Issues

Implement Logging

Currently, warnings are being used and those are either printed to console or the slurm files created by sbatch. However, there should be a better logging solution. Thinking about separating warnings, general info, etc. Especially since there are often many of these things which quickly overwhelm the console/slurm file.

Index Error in Parallel process

Trying to index a None object it seems. Unclear where as it happens in the parallel process and the traceback refers to joblib. So have to see why/where we would be returning nothing

if all invalid use

This seems to be acting as two things when it should be one. (Maybe not though I'm not sure). This parameter should only be the value to use if all points in the time series are invalid. It should not be used to replace invalid values when valid ones are present. Also, we don't need to throw an error if this is missing as long as it's not needed.

Allow calendar of output to be chosen by user

Currently, output datasets are returned using the same calendar as the input simulated future data. However, the bias adjustment process converts and uses a proleptci-gregorian calendar no matter what, and converts back if necessary. We should just allow for the final conversion to use any user specified calendar that is available in xarray.

Return distribution parameters

If requested, it may be nice to provide the option to return the distribution parameters found during the fitting process. This could be an interesting piece for analysis over the grid.

Github Tests

Automated tests when pushing / pulling are failing due to not being able to install xesmf package via conda during the github workflow. This is not indicative of a real failure in the branch and will cause confusion.

See how we can properly get all dependencies installed during workflow runs.

Default grid resolution matching algorithm

A key concept in the bias adjustment algorithm is that we force the observational data, which is usually at a more fine resolution, to have the same shape as the simulated data. Of course, users can and perhaps will be recommended to reshape their data before inputting into the algorithm so as to match their needs. However, we should provide a default process to make this happen, in hopefully a very general, consistent and accurate way.

Profiling Code

Some work needs to be done in profiling the code. Though I believe already that there are some serious time losses in the get_upper_bound_climatology function, it would be great to know where exactly we are being slowed down. Right now, precipitation runs quite rapidly. Shortwave radiation (rsds) though is a variable which gets scaled to the interval [0,1] before running bias adjustment. This happens using a running window, and hence is probably a choke point in the code. It would be great to get this to run fast because it is surely not optimized. Currently running nearly 10x slower (!!) where that really should be less than 2x easily.

Calendar Conversion Issues

Sometimes there's a problem writing to NetCDF because of calendar conversion issues and incompatible representations of time in Python. Right now we have a pair of try/except blocks that attempt to write out or fail informatively. We should see how to make the calendar conversion more robust.

Non-integer downscaling factors

When observational resolution is not a clean integer factor of the simulated resolution, we need to implement a strategy for reprojection onto the "closest" grid that satisfies this requirement.

MBCn algorithm

Lange briefly mentions the includsion of the MBCn algorithm for adjustment of the inter-variable copula. This appears to be implemented in his version of the code.

This algorithm addresses the fact that we have so far treat model variables as independent when that is very much not the case. When we have multiple model variables, we may want to use this algorithm.

There appears to be a good paper on the topic by Alex J. Cannon here.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.