blob: 63b29da5bf6d9381a1805658089a43d67081a712 (
plain)
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
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
|
#!/usr/bin/perl -w
my $COLLECTION="orthorgb";
my $SERVER="zombie";
my $YMIN=0;
my $YMAX=4999;
my $XMIN=0;
my $XMAX=4999;
my $SCALELEVELS=8;
my $IMGTYPE="RGB";#or "GREY"
my $STORAGEFORMAT="Array";
my $TRANSFERFORMAT="Array";
my $transferWidth=2000;
$transferWidth=int($transferWidth/(2**$SCALELEVELS))*(2**$SCALELEVELS);
print "#transfer width $transferWidth\n";
my $transferHeight=2000;
$transferHeight=int($transferHeight/(2**$SCALELEVELS))*(2**$SCALELEVELS);
print "#transfer height $transferHeight\n";
my $i=0;
my $currentCollection=$COLLECTION;
my $currentXMin=$XMIN;
my $currentYMin=$YMIN;
my $currentXMax=$XMIN + $transferWidth;
$currentXMax=min($XMAX, $currentXMax);
my $currentYMax=$YMIN + $transferHeight;
$currentYMax=min($YMAX, $currentYMax);
my $colltype;
my $mddtype;
my $conversiontype;
my $scaleLevel=2;
my $command;
my $scaleString;
my $domain;
sub max {
my $currentMax = shift;
my $next = shift;
if ($currentMax > $next)
{
return $currentMax;
}
else {
return $next;
}
};
sub min {
my $currentMax = shift;
my $next = shift;
if ($currentMax > $next)
{
return $next;
}
else {
return $currentMax;
}
};
if ($IMGTYPE eq "RGB")
{
$colltype="RGBSet";
$mddtype="RGBImage";
$conversiontype="RGBPixel";
}
else {
if ($IMGTYPE eq "RGB")
{
$colltype="GreySet";
$mddtype="GreyImage";
$conversiontype="char";
}
else {
die "Unknown image type: $IMGTYPE\n";
}
}
for ($i=1; $i < $SCALELEVELS + 1; $i++)
{
$currentCollection = $COLLECTION . "_" . int($i);
$scaleString .= "$currentCollection:$scaleLevel";
if ($i != $SCALELEVELS)
{
$scaleString .= ";";
}
$scaleLevel *= 2;
}
while ($currentXMax <= $XMAX)
{
while ($currentYMax <= $YMAX)
{
$domain = "[$currentXMin:" . ($currentXMax - 1) . ",$currentYMin:" . ($currentYMax - 1) . "]";
$command = "system_update -s $SERVER --collection $COLLECTION -t --colltype $colltype --mddtype $mddtype --storageformat $STORAGEFORMAT --transferformat $TRANSFERFORMAT --scalelevels \"$scaleString\" --mdddomain \"$domain\"";
print "$command\n";
if ($currentYMax == $YMAX)
{
last;
}
$currentYMax += $transferHeight;
$currentYMax = min($currentYMax, $YMAX);
$currentYMin += $transferHeight;
};
if ($currentXMax == $XMAX)
{
last;
}
$currentXMin += $transferWidth;
$currentXMax += $transferWidth;
$currentXMax = min($currentXMax, $XMAX);
$currentYMin = $YMIN;
$currentYMax = $YMIN + $transferHeight;
$currentYMax = min($YMAX, $currentYMax);
};
|