pik-copan / pyunicorn Goto Github PK
View Code? Open in Web Editor NEWUnified Complex Network and Recurrence Analysis Toolbox
Home Page: http://pik-potsdam.de/~donges/pyunicorn/
License: Other
Unified Complex Network and Recurrence Analysis Toolbox
Home Page: http://pik-potsdam.de/~donges/pyunicorn/
License: Other
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
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:
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
The Sphinxdoc theme feels quite old. How about the Sphinx Bootstrap Theme for pyunicorn
's next version? Found it here: http://docs.writethedocs.org/tools/sphinx-themes/
Originally reported by: ntfrgl
Originally created on: 2014-06-13
Consistently change code documentation style to restructured text.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
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
Create unit tests.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Introduce clean exception handling via Exception class.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
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
Documentation does not compile correctly to Latex-PDF.
Originally reported by: Jonathan Donges
Originally created on: 2014-09-25
Empty adjacency matrix induces various errors, e.g., in computing network measures.
Originally reported by: Jonathan Donges
Originally created on: 2014-09-24
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
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
Remove dependency on PyNgl and use basemap instead for map plotting class MapPlots or equivalent.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Add doc tests where missing, improve, fix print vs printf issue.
Originally reported by: Jonathan Donges
Originally created on: 2014-04-16
Originally reported by: Jonathan Donges
Originally created on: 2014-04-16
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
Consistently adapt code to PEP8 style where this is not yet the case. Use tools like pylint for checking: http://www.pylint.org
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
core.network.Network.SmallTestNetwork().get_local_vulnerability()[0]
Originally reported by: ntfrgl
Originally created on: 2014-06-17
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
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 such as:
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Originally reported by: Jonathan Donges
Originally created on: 2014-04-16
Improve handling of optional dependencies (check import only where needed, raise import errors only when trying to use the related functionality -> via verbosity management):
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
Originally reported by: Jonathan Donges
Originally created on: 2014-06-13
Consolidate this...
Originally reported by: Jonathan Donges
Originally created on: 2014-04-16
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
Add class by Marc
Originally reported by: Jonathan Donges
Originally created on: 2014-06-13
Create more varied examples, tutorials and use cases.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Code quality improvement.
Originally reported by: Jonathan Donges
Originally created on: 2014-10-20
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
Introduce use of sparse matrices in GeoNetwork, InteractingNetworks etc. classes.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-15
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
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
Use similarity measures computed by CouplingAnalysis in functional network classes.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Replace print statements.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Remove dependency on pysparse by switching to scipy.sparse matrices.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Originally reported by: Jonathan Donges
Originally created on: 2014-06-13
Change license to more suitable one: BSP 3.0 ?
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
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
E.g. https://github.com/dengemann/mne-python/blob/master/doc/source/contributing.rst
Originally reported by: Denis A Engemann
Originally created on: 2013-03-15
Remove depracated functions, transfer TO DO comments to bitbucket issues etc.
Originally reported by: Jonathan Donges
Originally created on: 2014-06-13
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
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
core.network.Network.get_global_efficiency()
:
path_lengths
climate.climate_network.ClimateNetwork.get_correlation_distance_weighted_closeness()
:
self.get_correlation_distance()
climate.climate_network.ClimateNetwork.get_local_correlation_distance_weighted_vulnerability()
:
self.get_correlation_distance()
Originally reported by: ntfrgl
Originally created on: 2014-06-17
Add brief method descriptions to pyunicorn documentation.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Add features from his code:
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
Change dependency on progressbar to weak dependency (only import where needed).
Originally reported by: Jonathan Donges
Originally created on: 2013-03-14
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
Override inherited functions by native.
Originally reported by: Jonathan Donges
Originally created on: 2013-03-19
Originally reported by: Jonathan Donges
Originally created on: 2014-04-16
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.