cslotboom / hysteresis Goto Github PK
View Code? Open in Web Editor NEWData analysis tools for nonfunctional curves.
License: Apache License 2.0
Data analysis tools for nonfunctional curves.
License: Apache License 2.0
The doscstring isn't descriptive enough for most plot functions. Add a more detailed discussion of this and the attribute arguments.
At the start of the script, the user should be able to assign the default functions that are used.
The hysteresis objects should initialize based on a dispatcher, which stores the methods that will be used.
If left untouched the default functions will be used.
However, the user should be able to easily specify which function they would like.
environment(slopefunction=customSlopeFunction)
Then all curve objects will inherit their properties from the dispatcher.
I worry this might slow things down a little
It was requested by @sahilkur36 to be able to return the positive and negative backbone curve. Some Hysteresis are asymmetrical and this would be a useful feature.
Additional arguments are not passed to the negative hysteresis in the backbone functions calculation. This may lead to that hysteresis appearing different than the input hysteresis.
I should find a way to to copy over these properties, ideally without passing them to the function. Passing them is too messy.
Maybe if we store the parameters of the hysteresis cycles in the object, we can update and copy them with the original hysteresis object.
Hello
I had a number of hysteresis charts that I drew the bone curve with the hysteresis library. In one of the hysteresis curves, there was a mistake in the bone drawing, which is probably related to the bug. I will upload the necessary data, please guide me if possible.
Download hystersis data -> hystersis data.csv
Download loading protocol -> SAC Loading protocol.csv
Currently a lot of manual input is required to find out the number of peaks/number of cycles. A function should be used to automatically suggest the correct parameters that return the number of peaks.
The goal of this function is, given a target number of cycles, find the parameters that output that number of cycles.
It would be nice to be able to retrieve maximums using attributes, i.e.
xmax = myHys.xmax
Hello,
I ran the example demo code but I do not see any plot. The file compiles fine. Could you please tell me why am I not able to see any graphs?
It would be useful to document some of the conventions used by the package - such as directions (1 pos, -1 neg), name conventions, etc.
Hi
I wanted to express my gratitude for the programming codes you shared โ they've been incredibly useful. Currently, I'm working on extracting a backbone curve from hysteresis data using the provided code. However, the results are perplexing, and I think the code is not reaching the end of the data. Could you please guide me on how to accurately derive the backbone curve? I've attached the data and results for your reference.
Many thanks,
data and results.zip
Kimia
When any process creates a new xy curve (operations, resample, etc.), it doesn't transfer the peak/reversal state to that curve.
There should be a process for copying those parameters, so the new curve maintains he state where appropriate.
It would be good to be able to pass args and kwargs to the matplotlib plot command for easy plot customization.
Right now the user has to manually change the line objects after they are made which is a little gross.
Hi Christian,
Greetings from Huanru. As usual, your Hysteresis tool saved my life in processing the pushover curve. Thank you for all the effort.
I wonder that if there any way to save the bilinear curve or at least the effective yield displacement after we managed to obtain the EPPP bilinear curve for a pushover curve. I noticed the "myEEEP" is a simple curve object. Any hints will be so helpful!
xy = np.column_stack([roof_disp, base_shear])
myHys = hys.Hysteresis(xy)
myEEEP = hys.fitEEEP(myHys) # Fit the EEEP to the curve
line1 = myHys.plot(linewidth=1, label='NLSA')
line3 = myEEEP.plot(color='black', label='EEEP Curve', linewidth=2)
plt.minorticks_on()
plt.grid(which='major', color='grey', linewidth=0.5, alpha=0.8)
plt.grid(which='minor', linewidth=0.5, alpha=0.4)
plt.legend(loc='lower right',prop={'family': 'Times New Roman', "size": 14}, frameon=False)
plt.xlabel('Roof drift ratio (%)', **csfont)
plt.ylabel('base shear (kN)', **csfont)
plt.xlim(0, 5)
plt.ylim(0, )
plt.show()
Sincerely
Huanru
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.