Package: pfs2yaml
PFS2YAMLConvert PFS files to YAML or python dictionary.For a complete example of extracting coordinates of all sources see thisnotebook.Installationpip install https://github.com/DHI/pfs2yaml/archive/master.zipUsagePython3.6.6|Anaconda,Inc.|(default,Jun282018,11:27:44)[MSCv.190064bit(AMD64)]onwin32Type"help","copyright","credits"or"license"formoreinformation.>>>importpfs2yaml>>>pfs="""... [FemEngineHD]...    [DOMAIN]...       Touched = 1...       discretization = 2...       number_of_dimensions = 2...       number_of_meshes = 1...       file_name = |.\weird.mesh|...       type_of_reordering = 1...       number_of_domains = 16...       coordinate_type = 'PROJCS["UTM-32",GEOGCS["Unused",DATUM["UTM Projections",SPHEROID["WGS 1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",9],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]]'...       minimum_depth = -4.98911480069749...       datum_depth = 0.0...       vertical_mesh_type_overall = 1...       number_of_layers = 10...       z_sigma = -7.464212579701861...       vertical_mesh_type = 1...       layer_thickness = 0.1, 0.1, 0.1, 0.3, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1...     EndSect... EndSect""">>>yml=pfs2yaml.pfs2yaml(pfs)>>>print(yml)---FemEngineHD:DOMAIN:touched:1discretization:2number_of_dimensions:2number_of_meshes:1file_name:.\weird.meshtype_of_reordering:1number_of_domains:16coordinate_type:'PROJCS["UTM-32",GEOGCS["Unused",DATUM["UTM Projections",SPHEROID["WGS 1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",9],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]]'minimum_depth:-4.98911480069749datum_depth:0.0vertical_mesh_type_overall:1number_of_layers:10z_sigma:-7.464212579701861vertical_mesh_type:1layer_thickness:[0.1,0.1,0.1,0.3,0.1,0.1,0.1,0.1,0.1,0.1]>>>d=pfs2yaml.pfs2dict(pfs)>>>d{'FemEngineHD':{'DOMAIN':{'touched':1,'discretization':2,'number_of_dimensions':2,'number_of_meshes':1,'file_name':'.\\weird.mesh','type_of_reordering':1,'number_of_domains':16,'coordinate_type':'PROJCS["UTM-32",GEOGCS["Unused",DATUM["UTM Projections",SPHEROID["WGS 1984",6378137,298.257223563]],PRIMEM["Greenwich",0],UNIT["Degree",0.0174532925199433]],PROJECTION["Transverse_Mercator"],PARAMETER["False_Easting",500000],PARAMETER["False_Northing",0],PARAMETER["Central_Meridian",9],PARAMETER["Scale_Factor",0.9996],PARAMETER["Latitude_Of_Origin",0],UNIT["Meter",1]]','minimum_depth':-4.98911480069749,'datum_depth':0.0,'vertical_mesh_type_overall':1,'number_of_layers':10,'z_sigma':-7.464212579701861,'vertical_mesh_type':1,'layer_thickness':[0.1,0.1,0.1,0.3,0.1,0.1,0.1,0.1,0.1,0.1]}}}>>>d=pfs2yaml.pfs2dict(pfs)>>>d>>>d["FemEngineHD"]["DOMAIN"]["layer_thickness"][3]0.3Command line interfaceC:\>pfs2yaml --help
Usage: pfs2yaml [OPTIONS] INPUT [OUTPUT]

  Convert PFS files to YAML

  Output filename is optional.

  Default value is input filename with .yml extension

Options:
  --help  Show this message and exit.

C:\>pfs2yaml Odense.m21fm
Writing YAML file: Odense.m21fm.yml

C:\>more Odense.m21fm.yml
---
! Created     : 2018-01-16 10:31:3
! DLL id      : C:\Program Files (x86)\DHI\2017\bin\x64\pfs2004.dll
! PFS version : Apr  4 2017 19:09:27

FemEngineHD:
  DOMAIN:
    touched :  1
    discretization :  2
    number_of_dimensions :  2
    number_of_meshes :  1
    file_name :  .\Input\odense_rough.mesh
    type_of_reordering :  0
    number_of_domains :  16
    coordinate_type :  'UTM-33'