Changeset 1088


Ignore:
Timestamp:
Mar 16, 2005, 5:46:16 PM (20 years ago)
Author:
prow
Message:

sww2domain now throws an exception if NaNs? are in the file. Option to set NaNs? to a default value.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • inundation/ga/storm_surge/pyvolution/data_manager.py

    r1085 r1088  
    15331533
    15341534
    1535 def sww2domain(filename,t=None):
     1535def sww2domain(filename,t=None,fail_if_NaN=True,NaN_filler=0):
    15361536    """Read sww Net CDF file containing Shallow Water Wave simulation
    15371537
     
    15411541
    15421542    """
     1543    NaN=9.969209968386869e+036
    15431544    from Scientific.IO.NetCDF import NetCDFFile
    15441545    from domain import Domain
     
    15981599    for quantity in other_quantities:
    15991600        X = fid.variables[quantity][:]
     1601        print quantity
     1602        print 'max(X)'
     1603        print max(X)
     1604        print 'max(X)==NaN'
     1605        print max(X)==NaN
     1606        if (max(X)==NaN) or (min(X)==NaN):
     1607            if fail_if_NaN:
     1608                msg = 'quantity %s contains no_data entry'%quantity
     1609                raise msg
     1610            else:
     1611                data = (X<>NaN)
     1612                X = (X*data)+(data==0)*NaN_filler
    16001613        domain.set_quantity(quantity,X)
    16011614#
    16021615    for quantity in conserved_quantities:
    16031616        X = interpolated_quantities[quantity]
     1617        print quantity
     1618        print 'max(X)'
     1619        print max(X)
     1620        print 'max(X)==NaN'
     1621        print max(X)==NaN
     1622        if (max(X)==NaN) or (min(X)==NaN):
     1623            if fail_if_NaN:
     1624                msg = 'quantity %s contains no_data entry'%quantity
     1625                raise msg
     1626            else:
     1627                data = (X<>NaN)
     1628                X = (X*data)+(data==0)*NaN_filler
    16041629        domain.set_quantity(quantity,X)
    16051630#
Note: See TracChangeset for help on using the changeset viewer.