Metadata-Version: 2.1
Name: mikeio
Version: 0.2.2
Summary: A package that works with the DHI dfs libraries to facilitate creating, writing and reading dfs0, dfs2, dfs3, dfsu and mesh files.
Home-page: https://github.com/DHI/mikeio
Author: Henrik Andersson
Author-email: jan@dhigroup.com
License: MIT
Download-URL: https://github.com/DHI/mikeio/archive/0.2.1.zip
Description: # mikeio
        Facilitate creating, reading and writing dfs0, dfs2, dfs1 and dfs3 files. Reading Res1D data.
        
        ## Requirements
        
        * Python x64 >=3.6
        * [Mike SDK](https://www.mikepoweredbydhi.com/download/mike-2019/mike-sdk)
        * Python packages:
          * Pythonnet
          * Numpy
          * Pandas
        
        ## Installation
        
        `mikeio` is not yet on [PyPI](https://pypi.org/), and until then you can install the package either by 
        
        `pip install git+https://github.com/DHI/mikeio.git`
        
        or
        
        1. downloading the [zip file](https://github.com/DHI/mikeio/archive/master.zip).
        2. `pip install mikeio-master.zip`
        
        
        
        ## Examples
        
        ### Reading dfs0 file into Pandas DataFrame
        ```python
        from mikeio.dfs0 import dfs0
        dfs = dfs0()
        ts = dfs.read_to_pandas('simple.dfs0')
        ```
        
        ### Create simple timeseries
        ```python
        from datetime import datetime, timedelta
        import numpy as np
        from mikeio.dfs0 import dfs0
        
        # create a list containing data for each item
        data = []
        
        # Some random values for first (and only) item
        d = np.random.random([100])
        data.append(d)
        
        dfs = dfs0()
        dfs.create(filename='simple.dfs0',
                   data=data,
                   start_time=datetime(2017, 1, 1),
                   dt=60)
        
        ```
        
        
        ### Create equidistant dfs0 with weekly timestep
        ```python
        from mikeio.eum import TimeStep
        d1 = np.random.random([1000])
        d2 = np.random.random([1000])
        data = []
        data.append(d1)
        data.append(d2)
        
        dfs = dfs0.dfs0()
        dfs.create(filename='random.dfs0',
                   data=data,
                   start_time=datetime(2017, 1, 1),
                   timeseries_unit=TimeStep.DAY,
                   dt=7,
                   names=['Random1', 'Random2'],
                   title='Hello Test')
        
        ```
        For more examples see this [notebook](notebooks/01%20-%20Timeseries.ipynb)
        
        
        ### Read dfs2 data
        ```python
        from mikeio.dfs2 import dfs2
        dfs2File = r"20150101-DMI-L4UHfnd-NSEABALTIC-v01-fv01-DMI_OI.dfs2"
        dfs = dfs2()
        res = dfs.read(dfs2File)
        res.names
        ```
        
        ### Create dfs2
        For a complete example of conversion from netcdf to dfs2 see this [notebook](notebooks/Sea%20surface%20temperature%20-%20dfs2.ipynb).
        
        Another [example](notebooks/Global%20Forecasting%20System%20-%20dfs2.ipynb) of downloading meteorlogical forecast from the Global Forecasting System and converting it to a dfs2 ready to be used by a MIKE 21 model.
        
        ## DFS Utilities to query variable type, time series types (useful when creating a new dfs file)
        ```python
        >>> from mikeio.dfs_util import type_list, unit_list
        >>> type_list('Water level')
        {100000: 'Water Level', 100307: 'Water level change'}
        
        >>> unit_list(100307)
        {1000: 'meter', 1003: 'feet'}
        ```
        
        ### Read Res1D file Return Pandas DataFrame
        ```python
        import res1d as r1d
        p1 = r1d.ExtractionPoint()
        p1.BranchName  = 'branch1'
        p1.Chainage = 10.11
        p1.VariableType  = 'Discharge'
        ts = r1d.read('res1dfile.res1d', [p1])
        ```
        
        ### Read dfsu files
        ```python
        import matplotlib.pyplot as plt
        from mikeio.dfsu import dfsu
        
        dfs = dfsu()
        
        filename = "HD.dfsu"
        res = dfs.read(filename)
        
        idx = dfs.find_closest_element_index(x=608000, y=6907000)
        
        # data has two dimensions time, x
        plt.plot(res.time, res.data[0][:,idx])
        ```
        ![Timeseries](images/dfsu_ts.png)
        
        
        
Platform: UNKNOWN
Classifier: Programming Language :: Python :: 3
Classifier: Operating System :: Microsoft :: Windows :: Windows 10
Description-Content-Type: text/markdown
