module Gis.Saga.Data where import Gis.Saga.Types import Gis.Saga.Utils import System.Directory (removeFile) import qualified Data.Map as M -- | Implemented command for piping sIoDB :: SagaIoCmdDB sIoDB = M.fromList [ ("xyzGridToGrid", ( SagaCmd "io_grid" "6" ("FILENAME","GRID") -- library, module, input-,output-parameters (M.fromList [ -- parameters: sagaPipe-par, saga_cmd-par, default ("cs", ("CELLSIZE" , "1")) ,("sep", ("SEPARATOR" , "space")) ]) Nothing Nothing -- pre-, post-processing , ".sgrd" -- output-file extension ) ) ,("lasToPtCld", ( SagaCmd "io_shapes_las" "1" ("FILE", "POINTS") (M.fromList []) Nothing Nothing , ".spc")) ,("ptCldToGrid", ( SagaCmd "pointcloud_tools" "4" ("POINTS","GRID") (M.fromList [("cs", ("CELLSIZE" , "1"))]) Nothing Nothing ,".sgrd")) ,("gridFillGaps", ( SagaCmd "grid_spline" "5" ("GRID","TARGET_OUT_GRID") (M.fromList [ ("grdFlT", ("TARGET_DEFINITION", "1")) --,("grdFlTtmpl", ("TARGET_TEMPLATE", out)) -- currently broken ]) (Just copyGrid) Nothing, "_filled.sgrd")) ,("gridHillshade", ( SagaCmd "ta_lighting" "0" ("ELEVATION","SHADE") (M.fromList []) Nothing Nothing , "_hillshade.sgrd")) ,("gridContour", ( SagaCmd "shapes_grid" "5" ("INPUT","CONTOUR") (M.fromList [ ("min" , ("ZMIN" , "0")) ,("max" , ("ZMAX" , "10000")) ,("d", ("ZSTEP" , "1")) ]) Nothing Nothing, "_contour.sgrd")) ,("gridPolyClip", ( SagaCmd "shapes_grid" "7" ("INPUT","OUTPUT") (M.fromList [ ("poly" , ("POLYGONS" , "1")) ]) Nothing Nothing, "_polyClip.sgrd")) ,("gridTifHillshade", ( SagaCmd "io_grid_image" "0" ("GRID","FILE") (M.fromList [ ("pal" , ("COL_PALETTE", "2")) ,("colRev",("COL_REVERT" , "1")) ,("min",("STRETCH_MIN" , "0")) ,("max",("STRETCH_MAX" , "1.571")) --,("stddev",("STDDEV" , "2")) --,("col",("COLOURING" , "2")) ]) Nothing Nothing, ".tif")) ,("gridTifTerrain", ( SagaCmd "io_grid_image" "0" ("GRID","FILE") (M.fromList [ ("pal" , ("COL_PALETTE", "23")) --,("colRev",("COL_REVERT" , "1")) ,("min",("STRETCH_MIN" , "0")) ,("max",("STRETCH_MAX" , "100")) --,("stddev",("STDDEV" , "2")) ,("col",("COLOURING" , "2")) ]) Nothing Nothing, ".tif")) ,("gridTifGdal", ( SagaCmd "io_gdal" "2" ("GRIDS","FILE") (M.fromList [ ]) Nothing Nothing, ".tif")) ,("gridEsriAsc", ( SagaCmd "io_grid" "0" ("GRID","FILE") (M.fromList [ ]) Nothing Nothing, ".asc")) ,("ascGrd", ( SagaCmd "io_grid" "1" ("FILE","GRID") (M.fromList [ ]) Nothing Nothing, ".sgrd")) ,("gdalGrid", ( SagaCmd "io_gdal" "0" ("FILES", "GRIDS") (M.fromList [ ]) Nothing Nothing, ".sgrd")) ,("gridXyz", ( SagaCmd "io_grid" "5" ("GRIDS","FILENAME") (M.fromList [ ("header",("CAPTION" , "0")) ,("na",("EX_NODATA" , "1")) ]) Nothing Nothing, ".xyz")) ,("polyDissolve", ( SagaCmd "shapes_polygons" "5" ("POLYGONS","DISSOLVED") (M.fromList [ ("method" ,("DISSOLVE" , "0")) -- 0: polygons with same attribute value -- 1: all polygons -- 2: polygons with same attribute value (keep inner boundaries) -- 3: all polygons (keep inner boundaries) ,("f1",("FIELD_1" , "1")) ,("f2",("FIELD_1" , "-1")) ,("f3",("FIELD_1" , "-1")) ]) Nothing Nothing, "_disollved.shp")) ,("gridSlope", ( SagaCmd "ta_morphometry" "0" ("ELEVATION","SLOPE") (M.fromList [ ("aspect" ,("ASPECT" , "aspect")) ]) Nothing Nothing, "_slope.sgrd")) ,("gridClassifyFlat", ( SagaCmd "grid_tools" "15" ("INPUT","RESULT") (M.fromList [ ("method" ,("METHOD" , "2")) -- 1: range -- 2: simple table ,("table" ,("RETAB" , "reclassify.txt")) ]) (Just (\_ _ -> writeReclassifyTableFlatSlope "reclassify.txt")) (Just (\_ _ -> removeFile "reclassify.txt")) , "_reclassified.sgrd")) ,("gridClassToPoly", ( SagaCmd "shapes_grid" "6" ("GRID","POLYGONS") (M.fromList [ ("id", ("CLASS_ID" , "1")) -- class identifier ,("all", ("CLASS_ALL" , "0")) -- 0: one single class specified by class identifier -- 1: all classes ,("split", ("SPLIT" , "0")) -- 0: one single (multi-)polygon object -- 1: each island as separated polygon ]) Nothing Nothing, "_polygons.shp")) ] -- | Pathsway nodes with input and output commands sNodes :: NodeMap sNodes = M.fromList [("las",([],["lasToPtCld"])) ,("gdal",([],["gdalGrid"])) ,("ptc",(["lasToPtCld"],["ptCldToGrid"])) ,("grid" ,(["ptCldToGrid","xyzGridToGrid","gdalGrid","ascGrd"] ,["gridFillGaps" ,"gridTifGdal" ,"gridPolyClip" ,"gridSlope" ,"gridClassToPoly" ,"gridClassifyFlat" ,"gridEsriAsc" ,"gridTifTerrain" ,"gridXyz" ,"gridHillshade"])) ,("xyz-grid",([],["xyzGridToGrid"])) ,("grid-filled",(["gridFillGaps"],["gridHillshade","gridXyz","gridContour"])) ,("grid-filled-hillshade",(["gridHillshade"],["gridTifHillshade"])) ,("grid-filled-hillshade-tif",(["gridTifHillshade"],[])) ,("grid-hillshade",(["gridHillshade"],["gridTifHillshade"])) ,("grid-hillshade-tif",(["gridTifHillshade"],[])) ,("grid-filled-xyz",(["gridXyz"],[])) ,("grid-filled-contour",(["gridContour"],[])) ,("grid-polygonClip",(["gridPolyClip"],[])) ,("grid-terrain-tif",(["gridTifTerrain"],[])) ,("grid-esri-asc",(["gridEsriAsc"],[])) ,("esri-asc",([],["ascGrd"]))]