Skip to content

Commit

Permalink
Add files via upload
Browse files Browse the repository at this point in the history
  • Loading branch information
akarimp authored Apr 25, 2022
1 parent 83c067b commit d57aa7b
Show file tree
Hide file tree
Showing 10 changed files with 599 additions and 13 deletions.
76 changes: 76 additions & 0 deletions docs/1_Introduction.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,76 @@
Introduction
============

ScientiMate is a library for earth-science data analysis. This library can be used for wide range of data analysis including a time series analysis, signal processing, and geo-data calculation.

ScientiMate Modules
-------------------

* Data Manipulating
* Hurricane
* Mapping
* Plotting
* Signal Processing
* Statistics
* Swan
* Water Wave Data Analysis
* Water Wave Directional Analysis
* Water Wave Parametric Model
* Water Wave Properties
* Wind

Citation
--------

Cite this package as:

Karimpour, A. (2022). ScientiMate, Earth-Science Data Analysis Library.

Recommended Books
-----------------

.. list-table::
:header-rows: 1
:align: center

* - .. figure:: figures/Figure_Book_Coastal.jpg
- .. figure:: figures/Figure_Book_Python.jpg
- .. figure:: figures/Figure_Book_Matlab.jpg

* - | **Ocean Wave Data Analysis**
| Introduction to Time Series Analysis, Signal Processing, and Wave Prediction.
|
| Order at Amazon: https://www.amazon.com/dp/0692109978
- | **Principles of Data Science with Python**
| Introduction to Scientific Computing, Data Analysis, and Data Visualization.
|
| Order at Amazon: https://www.amazon.com/dp/1735241008
- | **Fundamentals of Data Science with MATLAB**
| Introduction to Scientific Computing, Data Analysis, and Data Visualization.
|
| Order at Amazon: https://www.amazon.com/dp/1735241016
License Agreement and Disclaimer
--------------------------------

ScientiMate: Earth-Science Data Analysis Library

Copyright (c) 2022 Arash Karimpour

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
101 changes: 101 additions & 0 deletions docs/2_Getting_Started_Matlab.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
Getting Started (MATLAB Version)
================================

In order to use MATLAB version of ScientiMate library, first, one of the MATLAB or GNU Octave programming language along with required toolboxes should be installed (Refer to required packages for MATLAB/GNU Octave).


Installation
------------

To use MATLAB version of ScientiMate library:

* Install MATLAB or GNU Octave
* Download ScientiMate:

* Version 1.1 (GitHub): https://github.com/akarimp/ScientiMate/releases/download/1.1/scientimate.zip

* Unzip ScientiMate in any location you choose such as "C:\\"
* Add ScientiMate folder to MATLAB or GNU Octave path


Add ScientiMate folder to MATLAB or GNU Octave path
---------------------------------------------------

You may access ScientiMate by copying ScientiMate files and its sub-folders to your desire working directory and then use them there.
However, a better option is to add ScientiMate folder to MATLAB or GNU Octave path. By doing that, you always have access to ScientiMate from any working directory.
Remember, you need to add ScientiMate to path only once.

To add ScientiMate folder to MATLAB or GNU Octave path, you may use a provided add_scientimate_to_path.m file or you can do it manually in the command window.

**Add ScientiMate folder to MATLAB or GNU Octave path using add_scientimate_to_path.m**

* Open MATLAB or GNU Octave
* Change a current folder (working directory) to a folder that contains ScientiMate files, for example "C:\\scientimate", in MATLAB or GNU Octave.
* Run a file named add_scientimate_to_path.m in MATLAB or GNU Octave to add ScientiMate folder to MATLAB or GNU Octave path.

**Add ScientiMate folder to MATLAB or GNU Octave path manually in the Command Window**

For example, if ScientiMate files are in "C:\\scientimate" folder then it can be added to path as:

.. code:: matlab
ScientiMatePath = genpath('C:\scientimate'); %Generating path for ScientiMate folder and its sub-folders
addpath(ScientiMatePath); %Add ScientiMate folder to path
To remove ScientiMate from the path use:

.. code:: matlab
ScientiMatePath = genpath('C:\scientimate'); %Generating path for ScientiMate folder and its sub-folders
rmpath(ScientiMatePath); %Remove ScientiMate folder from path
%restoredefaultpath; %Restore path to factory-installed state
Operating System
----------------

This code can be run on Windows, Mac and Linux. However, make sure any given path is compatible with a running operating system. In particular, “\\” is used in Windows path, while “/” is used in Mac or Linux path. For example, if a path is “C:\\” on Windows machine, it would be “C:/” on Mac or Linux.


Required Programing Language
----------------------------

The MATLAB version of this toolbox can be run by using MATLAB (https://www.mathworks.com) or GNU Octave (https://www.gnu.org/software/octave).


Required Package for MATLAB
---------------------------

MATLAB users may need to install additional MATLAB Toolboxes such as Signal Processing Toolbox for some functions.


Required Package for GNU Octave
-------------------------------

GNU Octave users may need to install/load additional packages such as GNU Octave Signal Package for some functions.

For example, GNU Octave Signal Package can be loaded inside GNU Octave by using a following command in the command window (This should be done every time GNU Octave is opened):


.. code:: octave
>> pkg load signal
If GNU Octave Signal Package is not already installed, it should be first installed from Octave Forge (https://octave.sourceforge.io), and then get loaded by using the following commands in the command window:

.. code:: octave
>> pkg install -forge signal
>> pkg load signal
Quick Start
-----------

.. code:: matlab
x(:,1)=linspace(1,10,10);
y(:,1)=1+rand(10,1);
y(:,2)=2+rand(10,1);
plot2d(x,y,'line_confid','blue_red','large')
77 changes: 77 additions & 0 deletions docs/3_Getting_Started_Python.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
Getting Started (Python Version)
================================

In order to use Python version of ScientiMate library, first, Python programming language, and then, the ScientiMate library should be installed.


Installation
------------

To use ScientiMate library:

* Install Python
* Install ScientiMate

**1) Install Python**

First, you need to install Python programming language.

* Method 1:
Install pure Python from https://www.python.org and then use the **pip** command to install required packages
* Method 2 (Recommended):
Install Anaconda Python distribution from https://www.anaconda.com and then use the **conda** command to install required packages

**2) Install ScientiMate**

After Python is installed, you need to install ScientiMate library.

To install ScientiMate via pip (https://pypi.org/project/scientimate) if you use pure Python:

.. code:: python
pip install scientimate
To install ScientiMate via Anaconda cloud (https://anaconda.org/akarimp/scientimate) if you use Anaconda Python distribution:

.. code:: python
conda install -c akarimp scientimate
Operating System
----------------

This code can be run on Windows, Mac, and Linux.


Required Programing Language
----------------------------

This Python version of this library can be run by using Python 3 or later (https://www.python.org or https://www.anaconda.com).


Required Package for Python
---------------------------

Following packages are required:

* NumPy (https://numpy.org)
* SciPy (https://www.scipy.org)
* Matplotlib (https://matplotlib.org)


Quick Start
-----------

.. code:: python
import scientimate as sm
import numpy as np
print(sm.__version__)
x=np.linspace(1,10,10)
y=np.zeros((10,2))
y[:,0]=1+np.random.rand(10)
y[:,1]=2+np.random.rand(10)
sm.plot2d(x,y,'line_confid','blue_red','large')
139 changes: 139 additions & 0 deletions docs/4_Functions_List_Matlab.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
Functions List (MATLAB Version)
===============================

Here is a list of the ScientiMate functions MATLAB version:

Data Manipulating
-----------------
.. toctree::
:maxdepth: 1

matlab_functions/data_manipulating/downsamplex.rst
matlab_functions/data_manipulating/interpxyz2grid.rst
matlab_functions/data_manipulating/readxyzfile.rst
matlab_functions/data_manipulating/replacemissing1d.rst
matlab_functions/data_manipulating/replaceoutlier.rst

Hurricane
---------
.. toctree::
:maxdepth: 1

matlab_functions/hurricane/stormsurge1d.rst
matlab_functions/hurricane/hurricanewindh80.rst

Mapping
-------
.. toctree::
:maxdepth: 1

matlab_functions/mapping/convertdir.rst
matlab_functions/mapping/distancecart.rst
matlab_functions/mapping/distancegc.rst
matlab_functions/mapping/endpointcart.rst
matlab_functions/mapping/globalrelief.rst
matlab_functions/mapping/gridgenerator.rst
matlab_functions/mapping/reckongc.rst

Plotting
--------
.. toctree::
:maxdepth: 1

matlab_functions/plotting/plot2d.rst
matlab_functions/plotting/plot2dsubplot.rst
matlab_functions/plotting/plot2dtimeseries.rst
matlab_functions/plotting/plot3d.rst

Signal Processing
-----------------
.. toctree::
:maxdepth: 1

matlab_functions/signal_processing/filtertimeseries.rst
matlab_functions/signal_processing/smoothsignal.rst

Statistics
----------
.. toctree::
:maxdepth: 1

matlab_functions/statistics/curvefit2d.rst
matlab_functions/statistics/dataoverview.rst
matlab_functions/statistics/findextremum.rst
matlab_functions/statistics/findknn.rst
matlab_functions/statistics/fitgoodness.rst
matlab_functions/statistics/movingwindow.rst
matlab_functions/statistics/probability1d.rst
matlab_functions/statistics/similaritymeasure.rst

Swan
----
.. toctree::
:maxdepth: 1

matlab_functions/swan/swandepthgrid.rst
matlab_functions/swan/swanvectorvarspconst.rst
matlab_functions/swan/swanwaterlevelspconst.rst
matlab_functions/swan/swanwindspconst.rst

Water Wave Data Analysis
------------------------
.. toctree::
:maxdepth: 1

matlab_functions/water_wave_data_analysis/diagnostictail.rst
matlab_functions/water_wave_data_analysis/seaswell1d.rst
matlab_functions/water_wave_data_analysis/wavefrompressurepsd.rst
matlab_functions/water_wave_data_analysis/wavefrompressurezcross.rst
matlab_functions/water_wave_data_analysis/wavefromsurfaceelevpsd.rst
matlab_functions/water_wave_data_analysis/wavefromsurfaceelevzcross.rst
matlab_functions/water_wave_data_analysis/wavepropfrompsd.rst

| For ocean wave data analysis, you may use OCEANLYZ toolbox as well.
| OCEANLYZ, Ocean Wave Analyzing Toolbox, is a toolbox for analyzing the wave time series data collected by sensors in open body of water such as ocean, sea, and lake or in a laboratory.
| For more information, visit https://oceanlyz.readthedocs.io
Water Wave Directional Analysis
-------------------------------
.. toctree::
:maxdepth: 1

matlab_functions/water_wave_directional_analysis/directionalpsd.rst
matlab_functions/water_wave_directional_analysis/enu2truenorth.rst

Water Wave Parametric Model
---------------------------
.. toctree::
:maxdepth: 1

matlab_functions/water_wave_parametric_model/parametricwavedeep.rst
matlab_functions/water_wave_parametric_model/parametricwaveshallow.rst

Water Wave Properties
---------------------
.. toctree::
:maxdepth: 1

matlab_functions/water_wave_properties/bretpsd.rst
matlab_functions/water_wave_properties/donelanpsd.rst
matlab_functions/water_wave_properties/jonswappsd.rst
matlab_functions/water_wave_properties/pmpsd.rst
matlab_functions/water_wave_properties/pressureresponse.rst
matlab_functions/water_wave_properties/tmapsd.rst
matlab_functions/water_wave_properties/wavedispersion.rst

Wind
----
.. toctree::
:maxdepth: 1

matlab_functions/wind/directionavg.rst
matlab_functions/wind/surfaceroughness.rst
matlab_functions/wind/sustainedwindduration.rst
matlab_functions/wind/windavg.rst
matlab_functions/wind/winddrag.rst
matlab_functions/wind/windgustfactor.rst
matlab_functions/wind/windspectrum
matlab_functions/wind/windvelz1toz2.rst

Loading

0 comments on commit d57aa7b

Please sign in to comment.