-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathFSTD_ExtractValue.tcl
More file actions
78 lines (62 loc) · 2.06 KB
/
Copy pathFSTD_ExtractValue.tcl
File metadata and controls
78 lines (62 loc) · 2.06 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
#!/bin/sh
# the next line restarts using tclsh \
exec $SPI_PATH/tclsh "$0" "$@"
#============================================================================
# Environnement Canada
# Centre Meteorologique Canadien
# 2100 Trans-Canadienne
# Dorval, Quebec
#
# Projet : Exemple de scripts.
# Fichier : FSTD_ExtractValue.tcl
# Creation : Mai 2000 - J.P. Gauthier - CMC/CMOE
# Description: Extraire la valeur des champs a certains points et formatter le tout
# dans un fichier ascii
#
# Parametres :
#
# Retour:
#
# Remarques :
#
#============================================================================
package require TclData
#package require TclGeoEER
package require Logger
Log::Start [info script] 0.1
#----- Ouvrir les fichiers d'entree (1) sortie (2)
fstdfile open 1 read $env(CI_DATA_IN)/2005102612_012
#----- List des point de grille (i,j) qui nous interessent
set ijs { 172 216 172 217 172 218 172 219
173 216 173 217 173 218 173 219
174 216 174 217 174 218 174 219 }
#----- Procedure d'extraction de valeur
proc extract { Field File } {
global ijs
#----- Ouvrir le fichier de sortie
set f [open $File w]
#----- Ecrire l'entete
puts $f " #i j lat lon value"
#----- Boucler sur les coordonnees qui nous interesse
foreach { i j } $ijs {
#----- Extraire la valeur au point de grille
set val [fstdfield stats $Field -gridvalue $i $j]
#----- Recuperre la coordonnee latlon du point de grille
set coords [fstdfield stats $Field -gridpoint $i $j]
#----- Ecrire la ligne
puts $f " $i $j [lindex $coords 0] [lindex $coords 1] $val"
}
close $f
}
#----- Composante UU du vent en metre/s
fstdfield vector { UU VV }
fstdfield read FLD 1 -1 "" -1 -1 -1 "" "UU"
vexpr FLDUU FLD\[0\]*.5144
extract FLDUU $env(CI_DATA_OUT)/UU.0.dat
#----- Composante VV du vent en metre/s
vexpr FLDVV FLD\[1\]*.5144
extract FLDVV $env(CI_DATA_OUT)/VV.0.dat
#----- Mouvement vertical en metres/s
fstdfield read FLD 1 -1 "" -1 -1 -1 "" "WE"
extract FLD $env(CI_DATA_OUT)/FSTD_ExtractValue.txt
Log::End