Giter Site home page Giter Site logo

pyunicorn's People

Contributors

aodenweller avatar etzinis avatar filipinascimento avatar fkuehlein avatar harmening avatar jakassel avatar jdonges avatar jkroenke avatar lenas95 avatar mensch72 avatar mjziebarth avatar ntfrgl avatar ronjaho avatar wbarfuss avatar zugnachpankow avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

pyunicorn's Issues

Consolidate get / set functions

Remove get... where mainly calculations are performed.

Use get.. prefix only where there is a meaningful set... function associated to it.


Originally reported by: Jonathan Donges
Originally created on: 2014-04-16

[ENH] Weave -> Cython

scipy.weave is used all over pyunicorn to include C code for performance. For small snippets or disconnected bottleneck-solvers this seems quite handy.

But woven C code has reached a formidable portion of the code base and there seems to be potential for consolidation. Though not urgent, having debugging, profiling, tuning, refactoring and extending in mind, I wonder whether decomposing it properly could be better in the long run. I see two major options:

  • build a small C library and Python extension modules
  • switch to Cython

Cython seems to be very well suited for such an endeavor, and on grounds of maintainability and portability the SciPy Contributing FAQ says:

Therefore the basic advice is: use Cython.

Either way, I would have a great learning experience with such a task. What do you think?


Originally reported by: ntfrgl
Originally created on: 2014-05-01

Documentation style

Consistently change code documentation style to restructured text.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Inter-system recurrence network class

Create class InterSystemRecurrenceNetwork with corresponding functionality essentially combining RecurrenceNetwork and InteractingNetwork classes. Use code by Jan Feldhoff for this task.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Unit tests

Create unit tests.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Consistent exception handling

Introduce clean exception handling via Exception class.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Generalize class structure

Generalize class structure to accomodate general functional networks rather than only specific climate networks applications.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Add event synchronization measure

Add event synchronization as a measure for climate network construction.

Following the works by Nishant Malik, Niklas Boers et al:

Malik, N., Bookhagen, B., Marwan, N., & Kurths, J. (2012). Analysis of spatial and temporal extreme monsoonal rainfall over South Asia using complex networks. Climate dynamics, 39(3-4), 971-987.

Boers, N., Bookhagen, B., Marwan, N., Kurths, J., & Marengo, J. (2013). Complex networks identify spatial patterns of extreme rainfall events of the South American Monsoon System. Geophysical Research Letters, 40(16), 4386-4392.


Originally reported by: Jonathan Donges
Originally created on: 2014-09-26

Clean up experimental, deprecated and redundant code

Needs to be done before first public release. Some of this code that may be useful at some point should be moved to some kind of plug-in container classes.


Originally reported by: Jonathan Donges
Originally created on: 2014-06-17

Doc tests

Add doc tests where missing, improve, fix print vs printf issue.


Originally reported by: Jonathan Donges
Originally created on: 2014-04-16

Consider to replace igraph core by graph-tool

Graph-tool is parallelizable and may be faster than igraph. We need to check whether all required functionality provided by igraph is also available in graph-tool!


Originally reported by: Jonathan Donges
Originally created on: 2014-04-10

-inf

core.network.Network.SmallTestNetwork().get_local_vulnerability()[0]

  • Expected: 0.2969
  • Got: -inf

Originally reported by: ntfrgl
Originally created on: 2014-06-17

Remove FORTRAN dependency

Only in pygeonetwork.geo_network.GeoNetwork.get_boundary():

Delaunay triangulation on unit sphere uses FORTRAN library STRIPACK and could be replaced by methods from the mature C library Qhull already included in scipy.spatial.Delaunay.


Originally reported by: ntfrgl
Originally created on: 2014-04-27

Add weighted and directed motif clustering measures from Delphine's EPL paper

Measures from this paper, add to Network class:

Zemp, D. C., Wiedermann, M., Kurths, J., Rammig, A., & Donges, J. F. (2014). Node-weighted measures for complex networks with directed and weighted edges for studying continental moisture recycling. EPL (Europhysics Letters), 107(5), 58005.
ISO 690


Originally reported by: Jonathan Donges
Originally created on: 2014-10-03

Create interfaces to related tools

Create interfaces to related tools such as:

  • mne-python
  • scikit-learn

Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Optional dependencies

Improve handling of optional dependencies (check import only where needed, raise import errors only when trying to use the related functionality -> via verbosity management):

  • PyNgl
  • PyNio (http://www.pyngl.ucar.edu/Download/) [for class NetCDFDictionary]
  •     netcdf4 (http://code.google.com/p/netcdf4-python/) [for classes Data and NetCDFDictionary]
    
  •     Matplotlib (http://matplotlib.sourceforge.net) [for geometric methods in class Grid]
    
  •     mpi4py (http://code.google.com/p/mpi4py/) [for parallelizing costly computations]
    

Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Python 3.x compatibility

Consolidate this...


Originally reported by: Jonathan Donges
Originally created on: 2014-04-16

Ghostly memory leak in Network class

Resolve memory leak in Network class apparently related to creation of igraph object from pysparse edge list in set_adjacency_matrix method.

Possibly this could be solved by using up to date igraph version and scipy.sparse instead of pysparse.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Examples / Tutorials

Create more varied examples, tutorials and use cases.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

ENH: restructure package

Currently we have three modules.
We should create one moudule named pyunicorn which constitutes the first namespace that is imported by the user and move all the other modules there.

e.g. import pyunicorn as pc

from pyunicorn import pygeonetwork as pg


Originally reported by: Denis A Engemann
Originally created on: 2013-03-14

Enhance use of sparse data structures

Introduce use of sparse matrices in GeoNetwork, InteractingNetworks etc. classes.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-15

matplotlib: deprecated function

Only in pygeonetwork.grid.Grid.get_region_indices():

nxutils.points_inside_poly() was deprecated since 1.2 and removed in 1.3. Has to be converted into path.Path.contains_points().


Originally reported by: ntfrgl
Originally created on: 2014-04-18

Implement edge-weighted and directed measures in InteractingNetworks class

Edge-weighted and directed measures for interacting networks / networks of networks are essential for a more subtle and detailed structural analysis of these systems. In a first step, these measures need to be defined mathematically, following the work by:

J.F. Donges, H.C.H. Schultz, N. Marwan, Y. Zou, J. Kurths. “Investigating the topology of interacting networks - Theory and application to coupled climate subnetworks”. In European Physical Journal B: Condensed Matter and Complex Systems, vol. 84 (no. 4) p635-652 (2011) doi:10.1140/epjb/e2011-10795-8

M. Wiedermann, J.F. Donges, J. Heitzig, J. Kurths. “Node-weighted interacting network measures improve the representation of real-world complex systems”. In Europhysics Letters, vol. 102.2, 28007 (2013) doi:10.1209/0295-5075/102/28007


Originally reported by: Jonathan Donges
Originally created on: 2014-09-26

Remove dependency: pysparse

Remove dependency on pysparse by switching to scipy.sparse matrices.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

License change

Change license to more suitable one: BSP 3.0 ?


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Segfault in igraph

With igraph version 0.7.1, I get the following error. How about other machines?

core.network.Network.SmallTestNetwork().get_pagerank():

[:] *** Process received signal ***
[:] Signal: Segmentation fault (11)
[:] Signal code: Address not mapped (1)
[:] Failing at address: 0x7fc23f506255
[:] [ 0] /usr/lib/libpthread.so.0(+0xf4b0)[0x7fc21d53f4b0]
[:] [ 1] /usr/lib/libpython2.7.so.1.0(PyObject_IsTrue+0x1f)[0x7fc21d7d508f]
[:] [ 2] /usr/lib/python2.7/site-packages/igraph/_igraph.so(igraphmodule_Graph_personalized_pagerank+0x45b)[0x7fc2136f001b]
[:] [ 3] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x56c9)[0x7fc21d82f669]
[:] [ 4] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [ 5] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f17)[0x7fc21d82eeb7]
[:] [ 6] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [ 7] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f17)[0x7fc21d82eeb7]
[:] [ 8] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [ 9] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7fc21d830a69]
[:] [10] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x60f9)[0x7fc21d830099]
[:] [11] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [12] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f17)[0x7fc21d82eeb7]
[:] [13] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [14] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f17)[0x7fc21d82eeb7]
[:] [15] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [16] /usr/lib/libpython2.7.so.1.0(PyEval_EvalFrameEx+0x4f17)[0x7fc21d82eeb7]
[:] [17] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCodeEx+0x830)[0x7fc21d830970]
[:] [18] /usr/lib/libpython2.7.so.1.0(PyEval_EvalCode+0x19)[0x7fc21d830a69]
[:] [19] /usr/lib/libpython2.7.so.1.0(+0xfbeaf)[0x7fc21d849eaf]
[:] [20] /usr/lib/libpython2.7.so.1.0(PyRun_FileExFlags+0x72)[0x7fc21d84b0d2]
[:] [21] /usr/lib/libpython2.7.so.1.0(PyRun_SimpleFileExFlags+0xe7)[0x7fc21d84c2d7]
[:] [22] /usr/lib/libpython2.7.so.1.0(Py_Main+0xc7a)[0x7fc21d85d66a]
[:] [23] /usr/lib/libc.so.6(__libc_start_main+0xf0)[0x7fc21d1a2000]
[:] [24] python2[0x40073e]
[:] *** End of error message ***
zsh: segmentation fault (core dumped)  python2 pyunicorn/core/network.py

Originally reported by: ntfrgl
Originally created on: 2014-06-17

Consolidate TO DO comments in code

Remove depracated functions, transfer TO DO comments to bitbucket issues etc.


Originally reported by: Jonathan Donges
Originally created on: 2014-06-13

long-int in mutual_info.py

by executing pyunicorn-tutorial and using the mutual info to create a network error occured. I tracked it down to climate/mutual_info.py:

-In the _weave_calculate_mutual_information function is the bug hidden:

    In line 279 are variables declared as long integers
    BUT in the code calculated from the variable "symbolic" (see line 293)
    This variable "symbolic" is input from the python via weave to the c-code (line 440)
    And seems to be treated as an integer (NOT as long)

My workaround:
I changed the 'long' to 'int' in lines 273, 279.
I don't know if the change in 273 is necessary.


Originally reported by: pklamser
Originally created on: 2014-09-09

BUG: Misbehaving static function Network.ErdosRenyi

Number of nodes of returned Network object may deviate from prescribed number when the number of links is fixed instead of link probability. This bug (feature?) is on igraph level.

To do: Replace by function contributed by Jan Feldhoff und Stefan Lange.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-27

Divide by zero

core.network.Network.get_global_efficiency():

  • 1 / path_lengths

climate.climate_network.ClimateNetwork.get_correlation_distance_weighted_closeness():

  • 1 / self.get_correlation_distance()

climate.climate_network.ClimateNetwork.get_local_correlation_distance_weighted_vulnerability():

  • 1 / self.get_correlation_distance()

Originally reported by: ntfrgl
Originally created on: 2014-06-17

Method descriptions in docs

Add brief method descriptions to pyunicorn documentation.


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Merge changes by Alexej Gluschkow

Add features from his code:

  • Sparse versions of interacting network measures
  • Network models
  • ... ?

Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Remove dependency: progressbar

Change dependency on progressbar to weak dependency (only import where needed).


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

Remove dependencies: netcdf4-python

Use SciPy exclusively for accessing NetCDF files (only possible when scipy support of NetCDF4 format is added).


Originally reported by: Jonathan Donges
Originally created on: 2013-03-14

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.