Overview

Installation

The code currently resides at GitHub. If you have a .zip file you can install PolyADCIRC using:

python setup.py install

from the package root directory. The PolyADCIRC package is currently NOT avaiable in the Python Package Index this may change in the future. This package requires GNU Parallel, matplotlib, scipy, mpl_toolkit, and numpy. This package interacts with ADCIRC and GridData. ADCIRC is NOT provided with this package.

Griddata_parallel.out needs to be compiled in the PolyADCIRC/polyadcirc/pyGriddata folder:

gfortran -openmp -DHIGHMEM -o Griddata_parallel.out Griddata_v1.32.F90

Cutting Edge Version

To use the cutting edge version of this package you need to add the PolySim git repo to your PYTHONPATH. The PolySim repo is located at:

/org/groups/chg/lgraham/PolySim.git

You can do this by adding the line:

export PYTHONPATH=~/PolyADCIRC:$PYTHONPATH

to your ~/.bash_profile or ~/.bashrc file.

To check that this has worked you can type (in a Python enviroment):

>>> import sys
>>> sys.path

and the PolyADCIRC directory should be listed in that path.

Package Layout

The package layout is as follows:

polyadcirc/
    pyADCIRC/
         __init__.py
        prep_management.py
        fort1920_management.py
        plotADCIRC.py
        fort13_management.py
        fort15_management.py
        fort14_management.py
        basic.py
        output.py
        convert_fort14_to_fort13.py
        flag_fort14.py
        volume.py
    run_framework/
        __init__.py
        random_manningsn.py
        subdomain.py
        random_wall.py
        fulldomain.py
        domain.py
    pyGriddata/
        __init__.py
        file_management.py
        table_to_mesh_map.py
        manufacture_gap.py
        gridObject.py

Code Overview

pyADCIRC Package

This subpackage contains

run_framework Package

This subpackage contains

  • domain a container object for a data specific to a particular mesh(es), grid(s)
  • random_manningsn a class and associated set of methods to run a set of ADCIRC simulations with varying parameters

pyGriddata Package

This package contains a set of modules mainly for the mapping of nodal data to an ADCIRC mesh using landuse data and the Fortran90 program Griddata_v1.32.F90. GridData is a FORTRAN program originally developed by Seizo Tanaka (ST3) and C.H.Lab., University of Notre Dame.

This package contains the modules

grid_management prepares *.table and *.13 files needed for table_to_mesh_map and creates the n x m matrix of multiplier factors where n = # nodes, and m = # land classification values, assuming there are no surprises with the spatial averaging.

additional needed files:
  • compiled version of Gridata_v1.32.F90 named Griddata_parallel.out
  • .asc files
  • *.14 files
  • fort.13 file to use as a template for convert()

table_to_mesh_map given a **_manning.table (and data file(s) from above) produces a fort.13 ready for use by ADCIRC

Note

This module requires a modified version of Griddatat_v1.32.F90 that takes *.in files

See also

Module Index for detailed documentation of modules, classes, etc.

Internal dependencies

Dependencies via import statements:

polyadcirc/
    pyADCIRC/
        \-prep_management (polyadcirc.run_framework.domain,
            polyadcirc.run_framework.random_manningsn)
        \-plotADCIRC(polyadcirc.run_framework.domain,
            polyadcirc.run_framework.random_manningsn,
            polyadcirc.run_framework.random_wall)
        \-fort13_management (polyadcirc.pyGriddata.prep_mesh,
            polyadcirc.pyGriddata.table_to_mesh_map,
            polyadcirc.run_framework.domain,
            polyadcirc.run_framework.random_manningsn,
            polyadcirc.run_framework.random_wall)
        \-fort15_management (polyadcirc.pyADCIRC.plotADCIRC,
            polyadcirc.run_framework.domain,
            polyadcirc.run_framework.random_manningsn,
            polyadcirc.run_framework.subdomain)
        \-fort14_management (polyadcirc.pyGriddata.prep_mesh,
            polyadcirc.pyGriddata.file_management,
            polyadcirc.run_framework.domain,
            polyadcirc.run_framework.random_wall)
        \-basic (polyadcirc.pyADCIRC.fort14_management,
            polyadcirc.pyADCIRC.fort15_management)
        \-output (polyadcirc.run_framework.random_wall,
            polyadcirc.run_framework.random_manningsn,
            polyadcirc.run_framework.subdomain)
        \-convert_fort14_to_fort13 (polyadcirc.pyGriddata.gridObject)
        \-flag_fort14 (polyadcirc.pyADCIRC.fort14_management)
    run_framework/
        \-random_manningsn (polyadcirc.run_framework.random_wall,
            polyadcirc.run_framework.subdomain)
        \-domain (polyadcirc.run_framework.fulldomain,
            polyadcirc.run_framework.random_manningsn,
            polyadcirc.run_framework.subdomain)
    pyGriddata/
        \-file_management (polyadcirc.pyADCIRC.plotADCIRC,
            polyadcirc.pyGriddata.prep_mesh)
        \-table_to_mesh_map (polyadcirc.pyGriddata.prep_mesh,
            polyadcirc.run_framework.random_manningsn,
            polyadcirc.run_framework.subdomain)

External dependencies

This pacakge requires matplotlib, scipy, mpl_toolkit, and numpy. This package is written in Python.

matplotlib
    \-collections
    | \-LineCollection (polyadcirc.pyADCIRC.plotADCIRC)
    \-pyplot (polyadcirc.pyADCIRC.plotADCIRC)
    \-tri (polyadcirc.pyADCIRC.plotADCIRC)
  mpl_toolkits
    \-axes_grid1
      \-make_axes_locatable (polyadcirc.pyADCIRC.plotADCIRC)
  numpy (polyadcirc.pyADCIRC.volume,polyadcirc.run_framework.random_manningsn,polyadcirc.pyADCIRC.fort15_management,polyadcirc.run_framework.domain,polyadcirc.pyGriddata.manufacture_gap,polyadcirc.run_framework.random_wall,polyadcirc.pyGriddata.prep_mesh,polyadcirc.run_framework.subdomain,polyadcirc.pyGriddata.table_to_mesh_map,polyadcirc.pyADCIRC.plotADCIRC,polyadcirc.pyADCIRC.fort14_management,polyadcirc.pyADCIRC.fort13_management,polyadcirc.pyADCIRC.fort1920_management,polyadcirc.pyADCIRC.convert_fort14_to_fort13,polyadcirc.pyADCIRC.output)
  scipy
    \-interpolate
    | \-griddata (polyadcirc.run_framework.domain)
    \-io (polyadcirc.run_framework.subdomain,polyadcirc.run_framework.random_wall,polyadcirc.run_framework.random_manningsn)