import ESMF import argparse R0_SCHISM = 6378206.4 # earth radius in meters used by SCHISM def make_area_file(mesh_in, txt_out): schism_mesh = ESMF.Mesh(filename=str(mesh_in), filetype=ESMF.FileFormat.ESMFMESH) unit_areas = ESMF.Field(schism_mesh, meshloc=ESMF.MeshLoc.ELEMENT, name='areafield') unit_areas.get_area() areas_m2 = unit_areas.data[...] * (R0_SCHISM * R0_SCHISM) with (open(txt_out, 'w')) as outfile: for element in areas_m2: outfile.write("{:g}\n".format(element)) def main(): parser = argparse.ArgumentParser() parser.add_argument('mesh_in', type=str, help='Input hgrid.nc file', metavar="hgrid.nc") parser.add_argument('txt_out', type=str, help='Output element areas (m^2)', metavar="element_areas.txt") args = parser.parse_args() make_area_file(args.mesh_in, args.txt_out) if __name__ == '__main__': main()