-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathOGR_Create.tcl
More file actions
74 lines (58 loc) · 1.83 KB
/
Copy pathOGR_Create.tcl
File metadata and controls
74 lines (58 loc) · 1.83 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
#!/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 : OGR_Create.tcl
# Creation : Mars 2005 - J.P. Gauthier - CMC/CMOE
# Description: Creer un fichier Shapefile a partir de coordonnees latlon
#
# Parametres :
#
# Retour:
#
# Remarques :
#
#============================================================================
package require TclData
#package require TclGeoEER
package require Logger
Log::Start [info script] 0.1
set f [open $env(CI_DATA_IN)/MWO.reg]
#----- Creation du fichier
catch { file delete $env(CI_DATA_OUT)/OGR_Create.shp }
ogrfile open FILE write $env(CI_DATA_OUT)/OGR_Create.shp "ESRI Shapefile"
#----- Creation du layer et des champs
ogrlayer create FILE AREA "MWO"
ogrlayer define AREA -field ENGLISH String
ogrlayer define AREA -field FRANCAIS String
ogrgeometry create POLY "Polygon"
ogrgeometry create RING "Linear Ring"
set nb 0
set side 0
#----- Boucle sur les regions definie dans le fichier texte
while { ![eof $f] } {
gets $f line
if { [string index $line 0]!="#" && [llength $line]==2 } {
ogrgeometry define RING -points {}
foreach { y x z } [lindex $line 1] {
if { $x<0 && $side } {
set x [expr 360.0+$x]
}
ogrgeometry define RING -addpoint $x $y
}
ogrgeometry define POLY -geometry False RING
ogrlayer define AREA -nb [incr nb]
set no [expr $nb-1]
ogrlayer define AREA -feature $no FRANCAIS [lindex [lindex $line 0] 0]
ogrlayer define AREA -feature $no ENGLISH [lindex [lindex $line 0] 1]
ogrlayer define AREA -geometry $no False POLY
}
}
ogrfile close FILE
Log::End