From bdd0d20ec355ee959860f6412030ac2a5339f3c5 Mon Sep 17 00:00:00 2001 From: zsiki Date: Mon, 2 Nov 2020 20:15:26 +0100 Subject: [PATCH] volume and volume difference added to ref-guide --- doc/images/profile.png | Bin 0 -> 12837 bytes doc/reference_guide.rst | 34 +++++++++++++++++++++++++ doc/rg_images/ascii_grid.png | Bin 0 -> 7357 bytes src/sqlgeo.tcl | 47 +++++++++++++++++++++++++++++++++++ 4 files changed, 81 insertions(+) create mode 100644 doc/images/profile.png create mode 100644 doc/rg_images/ascii_grid.png create mode 100644 src/sqlgeo.tcl diff --git a/doc/images/profile.png b/doc/images/profile.png new file mode 100644 index 0000000000000000000000000000000000000000..78c9d0d8ca8ede5a965fc2ae5186c3df3183e8d9 GIT binary patch literal 12837 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 literal 0 HcmV?d00001 diff --git a/doc/reference_guide.rst b/doc/reference_guide.rst index 2a7cc7dc..bfc0ab0d 100644 --- a/doc/reference_guide.rst +++ b/doc/reference_guide.rst @@ -1176,10 +1176,44 @@ Volume ...... Calculate volume above a reference plain. +The user have to enter the height of the reference plain. The volume is +calculated in the prisms above the reference plain. The result is written into +the *Calculation results* window. + +.. code:: + + 2020.11.02 19:52 - Volume ... - test + Base height Volume Above Below Area Surface area + 100.000 1267409.3 1267409.3 0.0 178543.3 179311.4 + +The *Volume* = *Above* - *Below*. Volume difference ................. +Calculate volume difference between the loaded and another TIN. GRIDs are +generated from both TINs using the same GRID steps. Only the common area of the +two generated GRIDs are considered. + +.. figure:: rg_images/ascii_grid.png + +First the user have to give the grid step (step for north and east axis). +Next in the file selection dialogue a previously saved DTM can be selected. + +.. code:: + + 2020.11.02 19:40 - Volume difference ... testa - testb + Grid step: 50.00 + Lower left corner: 655886.80 222996.11 + Upper right corner: 656417.18 223621.18 + Cut Volume: 32125.1 m3 Area: 125000.0 m2 + Fill Volume: 10376.4 m3 Area: 45000.0 m2 + Same: 10000.0 m2 + +Beside the results in the *Calculation results* window a new difference grid is +generated in the folder of the loaded TIN. This file is an ESRI ASCII GRID +which can be loaded into several sortware among others into QGIS. + VRML/X3D export ............... diff --git a/doc/rg_images/ascii_grid.png b/doc/rg_images/ascii_grid.png new file mode 100644 index 0000000000000000000000000000000000000000..d95425ef3ff346e56c7117b70531467b46a4229c GIT binary patch literal 7357 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 l{?VT(da>-JU=3 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 literal 0 HcmV?d00001 diff --git a/src/sqlgeo.tcl b/src/sqlgeo.tcl new file mode 100644 index 00000000..e7b07eb7 --- /dev/null +++ b/src/sqlgeo.tcl @@ -0,0 +1,47 @@ +# +# Save coordinates to postgis SQL +# @param fa name of geo data set +# @param rn name of data file (.csv) +# @return 0 on success +proc SavePSql {fn rn} { + global ${fn}_coo + global geoLoaded + global geoCodes geoEasyMsg + + if {[info exists geoLoaded]} { + set pos [lsearch -exact $geoLoaded $fn] + if {$pos == -1} { + return -8 ;# geo data set not loaded + } + } else { + return 0 + } + set f [open $rn w] + # get epsg code + set epsg [GeoEntry "$geoCodes(140):" $geoCodes(140)] + # create table + puts $f "CREATE TABLE $fn (" + puts $f " geom geometry(Pointz, $epsg)," + puts $f " psz varchar(20) PRIMARY KEY," + puts $f " code varchar(20)" + puts $f ");" + + foreach pn [lsort -dictionary [array names ${fn}_coo]] { + set x [GetVal {38} [set ${fn}_coo($pn)]] + set y [GetVal {37} [set ${fn}_coo($pn)]] + set z [GetVal {39} [set ${fn}_coo($pn)]] + set code [GetVal {4} [set ${fn}_coo($pn)]] + if {[string length $code]} { + set code "'$code'" + } else { + set code "NULL" + } + if {[string length $x] && [string length $y]} { + if {[string length $z] == 0} { set z 0 } + puts $f "INSERT INTO $fn " + puts $f " VALUES (ST_SetSRID(ST_MakePoint($x,$y,$z), $epsg), '$pn', $code);" + } + } + close $f + return 0 +}