Giter Club home page Giter Club logo

rafael-a-monteiro-math / rising_sun_envelope_method Goto Github PK

View Code? Open in Web Editor NEW
1.0 2.0 1.0 27.34 MB

Companion website with an overview of the methods developed in the paper "The Rising Sun Envelope Method: an automatic and accurate peak location technique for XANES measurements".

Home Page: https://rafael-a-monteiro-math.github.io/Rising_Sun_Envelope_Method/

HTML 39.69% Jupyter Notebook 60.31%
xanes-measurement xanes peak-detection harmonic-analysis oscillatory-process raman-spectroscopy eels-spectrum-image raman splines interpolation-methods

rising_sun_envelope_method's Introduction

Rising Sun Envelope Method

This is a companion repository for the paper

The Rising Sun Envelope Method: an automatic and accurate peak location technique for XANES measurements,

by R. Monteiro (MathAM-OIL/AIST, Sendai, Japan), I. Miyazato, and K. Takahashi (Hokkaido University, Japan). (published by The Journal of Physical Chemistry A, DOI: 10.1021/acs.jpca.9b11712)

To cite this work

@article{doi:10.1021/acs.jpca.9b11712,
author = {Monteiro, Rafael and Miyazato, Itsuki and Takahashi, Keisuke},
title = {Rising Sun Envelope Method: An Automatic and Accurate Peak Location Technique for XANES Measurements},
journal = {The Journal of Physical Chemistry A},
volume = {124},
number = {9},
pages = {1754-1762},
year = {2020},
doi = {10.1021/acs.jpca.9b11712},
note ={PMID: 32013431},
URL = {https://doi.org/10.1021/acs.jpca.9b11712},
eprint = {https://doi.org/10.1021/acs.jpca.9b11712}
}

To download this repository

You can download and unzip this repository from GitHub, either interactively, or by entering

git clone https://github.com/rafael-a-monteiro-math/Rising_Sun_Envelope_Method.git

All the code for that paper is available in this github in the folder "XANES-jupyter-notebook", in Python.

How this jupyter-notebook is divided

There are many auxiliary functions necessary for this code, therefore we begin by explaining them; afterwards we do the decomposition and finally we run the dimension reduction and interpolations.

A glimpse at the Rising Sun Envelope Method

  • The method is based on a very old lemma of Riesz, the Rising Sun Lemma, used to study pointwise properties of functions, notably their oscillatory behavior. We exploit a similar idea to understand the oscillation seen in XANES measurements, "regularizing" the XANES measurement by constructing sequences of what we call Rising Sun functions.
  • The key idea is that in each one of these problems finding the first "real peak" (from left to right) is much simpler task. Overall, both the first peak location and its intensity are invariants under the Rising Sun construction.
  • Afterwards, the same method is applied to restrictions of the original XANES measurement to smaller and nested sub-intervals, yielding an iterated sequence of similar problems.

An example of the Rising Sun Envelope Method in practice

Further comments

There are many steps in the code that can be optimized. Indeed, we carried out many brute-force searches in a "careless", non-optimal way. For someone who might use this code in a daily basis, improving such property will make the difference between a code that runs in minutes rather than hours. Please, write, improve, and make our code better. We are advocating for a new idea with this method, and we believe - in fact, we are sure - that there is still a lot to be improved.

Parts where we think the code can be improved

  • Definitely, the plateau search can be improved: it doesn't need to return only one location, but it can return all the plateau locations.
  • The code can be improved to deal with non-noise functions. The main modification should be inserted in the peak finding function: whenever there is a plateau, the function should allow the 0 index to be the location of the peak. This will create an inconvenient of either repeating indices, but there is a simple fix to that, which was not necessary in our case.

rising_sun_envelope_method's People

Contributors

rafael-a-monteiro-math avatar

Stargazers

 avatar

Watchers

 avatar  avatar

Forkers

rajeevyadav

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.