Project

General

Profile

1 3094 cjones
<?xml version="1.0"?>
2
<!--
3
  *  '$RCSfile$'
4
  *      Authors: Jivka Bojilova
5
  *    Copyright: 2000 Regents of the University of California and the
6
  *               National Center for Ecological Analysis and Synthesis
7
  *  For Details: http://www.nceas.ucsb.edu/
8
  *
9
  *   '$Author$'
10
  *     '$Date$'
11
  * '$Revision$'
12
  *
13
  * This program is free software; you can redistribute it and/or modify
14
  * it under the terms of the GNU General Public License as published by
15
  * the Free Software Foundation; either version 2 of the License, or
16
  * (at your option) any later version.
17
  *
18
  * This program is distributed in the hope that it will be useful,
19
  * but WITHOUT ANY WARRANTY; without even the implied warranty of
20
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
21
  * GNU General Public License for more details.
22
  *
23
  * You should have received a copy of the GNU General Public License
24
  * along with this program; if not, write to the Free Software
25
  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
26
  *
27
  * This is an XSLT (http://www.w3.org/TR/xslt) stylesheet designed to
28
  * convert an XML file that is valid with respect to the eml-file.dtd
29
  * module of the Ecological Metadata Language (EML) into an HTML format
30
  * suitable for rendering with modern web browsers.
31
-->
32
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
33
34
35
  <xsl:output method="html" encoding="iso-8859-1"
36
              doctype-public="-//W3C//DTD HTML 4.01 Transitional//EN"
37
              doctype-system="http://www.w3.org/TR/html4/loose.dtd"
38
              indent="yes" />
39
  <!-- This module is for datatable module-->
40
41
  <xsl:template name="spatialRaster">
42
      <xsl:param name="spatialrasterfirstColStyle"/>
43
      <xsl:param name="spatialrastersubHeaderStyle"/>
44
      <xsl:param name="docid"/>
45
      <xsl:param name="entityindex"/>
46
      <table class="{$tabledefaultStyle}">
47
        <xsl:choose>
48
         <xsl:when test="references!=''">
49
          <xsl:variable name="ref_id" select="references"/>
50
          <xsl:variable name="references" select="$ids[@id=$ref_id]" />
51
          <xsl:for-each select="$references">
52
            <xsl:call-template name="spatialRastercommon">
53
             <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
54
             <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
55
             <xsl:with-param name="docid" select="$docid"/>
56
             <xsl:with-param name="entityindex" select="$entityindex"/>
57
            </xsl:call-template>
58
          </xsl:for-each>
59
        </xsl:when>
60
        <xsl:otherwise>
61
           <xsl:call-template name="spatialRastercommon">
62
             <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
63
             <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
64
             <xsl:with-param name="docid" select="$docid"/>
65
             <xsl:with-param name="entityindex" select="$entityindex"/>
66
            </xsl:call-template>
67
         </xsl:otherwise>
68
      </xsl:choose>
69
      </table>
70
  </xsl:template>
71
72
  <xsl:template name="spatialRastercommon">
73
    <xsl:param name="spatialrasterfirstColStyle"/>
74
    <xsl:param name="spatialrastersubHeaderStyle"/>
75
    <xsl:param name="docid"/>
76
    <xsl:param name="entityindex"/>
77
    <xsl:for-each select="entityName">
78
       <xsl:call-template name="entityName">
79
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
80
       </xsl:call-template>
81
    </xsl:for-each>
82
    <xsl:for-each select="alternateIdentifier">
83
       <xsl:call-template name="entityalternateIdentifier">
84
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
85
       </xsl:call-template>
86
    </xsl:for-each>
87
    <xsl:for-each select="entityDescription">
88
       <xsl:call-template name="entityDescription">
89
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
90
       </xsl:call-template>
91
    </xsl:for-each>
92
    <xsl:for-each select="additionalInfo">
93
       <xsl:call-template name="entityadditionalInfo">
94
          <xsl:with-param name="entityfirstColStyle" select="$spatialrasterfirstColStyle"/>
95
       </xsl:call-template>
96
    </xsl:for-each>
97
    <!-- call physical moduel without show distribution(we want see it later)-->
98
    <xsl:if test="physical">
99
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
100
        Physical Structure Description:
101
      </td></tr>
102
      <xsl:for-each select="physical">
103
      <tr><td colspan="2">
104
        <xsl:call-template name="physical">
105
         <xsl:with-param name="physicalfirstColStyle" select="$spatialrasterfirstColStyle"/>
106
         <xsl:with-param name="notshowdistribution">yes</xsl:with-param>
107
        </xsl:call-template>
108
         </td></tr>
109
      </xsl:for-each>
110
    </xsl:if>
111
    <xsl:if test="coverage">
112
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
113
        Coverage Description:
114
      </td></tr>
115
    </xsl:if>
116
    <xsl:for-each select="coverage">
117
      <tr><td colspan="2">
118
        <xsl:call-template name="coverage">
119
        </xsl:call-template>
120
      </td></tr>
121
    </xsl:for-each>
122
    <xsl:if test="method">
123
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
124
        Method Description:
125
      </td></tr>
126
    </xsl:if>
127
    <xsl:for-each select="method">
128
      <tr><td colspan="2">
129
        <xsl:call-template name="method">
130
          <xsl:with-param name="methodfirstColStyle" select="$spatialrasterfirstColStyle"/>
131
          <xsl:with-param name="methodsubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
132
        </xsl:call-template>
133
      </td></tr>
134
    </xsl:for-each>
135
    <xsl:if test="constraint">
136
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
137
        Constraint:
138
      </td></tr>
139
    </xsl:if>
140
    <xsl:for-each select="constraint">
141
      <tr><td colspan="2">
142
        <xsl:call-template name="constraint">
143
          <xsl:with-param name="constraintfirstColStyle" select="$spatialrasterfirstColStyle"/>
144
        </xsl:call-template>
145
      </td></tr>
146
    </xsl:for-each>
147
    <xsl:for-each select="spatialReference">
148
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
149
        Spatial Reference:
150
      </td></tr>
151
      <xsl:call-template name="spatialReference">
152
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
153
      </xsl:call-template>
154
    </xsl:for-each>
155
     <xsl:for-each select="georeferenceInfo">
156
       <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
157
        Grid Postion:
158
      </td></tr>
159
      <xsl:call-template name="georeferenceInfo">
160
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
161
      </xsl:call-template>
162
    </xsl:for-each>
163
    <xsl:for-each select="horizontalAccuracy">
164
      <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
165
        Horizontal Accuracy:
166
      </td></tr>
167
      <xsl:call-template name="dataQuality">
168
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
169
      </xsl:call-template>
170
    </xsl:for-each>
171
    <xsl:for-each select="verticalAccuracy">
172
      <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
173
        Vertical Accuracy:
174
      </td></tr>
175
      <xsl:call-template name="dataQuality">
176
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
177
      </xsl:call-template>
178
    </xsl:for-each>
179
    <xsl:for-each select="cellSizeXDirection">
180
       <tr><td class="{$spatialrasterfirstColStyle}">
181
            Cell Size(X):
182
            </td>
183
            <td class="{$secondColStyle}">
184
              <xsl:value-of select="."/>
185
            </td>
186
       </tr>
187
    </xsl:for-each>
188
    <xsl:for-each select="cellSizeYDirection">
189
       <tr><td class="{$spatialrasterfirstColStyle}">
190
            Cell Size(Y):
191
            </td>
192
            <td class="{$secondColStyle}">
193
              <xsl:value-of select="."/>
194
            </td>
195
       </tr>
196
    </xsl:for-each>
197
    <xsl:for-each select="numberOfBands">
198
       <tr><td class="{$spatialrasterfirstColStyle}">
199
            Number of Bands:
200
            </td>
201
            <td class="{$secondColStyle}">
202
              <xsl:value-of select="."/>
203
            </td>
204
       </tr>
205
    </xsl:for-each>
206
    <xsl:for-each select="rasterOrigin">
207
       <tr><td class="{$spatialrasterfirstColStyle}">
208
            Origin:
209
            </td>
210
            <td class="{$secondColStyle}">
211
              <xsl:value-of select="."/>
212
            </td>
213
       </tr>
214
    </xsl:for-each>
215
    <xsl:for-each select="columns">
216
       <tr><td class="{$spatialrasterfirstColStyle}">
217
            Max Raster Objects(X):
218
            </td>
219
            <td class="{$secondColStyle}">
220
              <xsl:value-of select="."/>
221
            </td>
222
       </tr>
223
    </xsl:for-each>
224
    <xsl:for-each select="rows">
225
       <tr><td class="{$spatialrasterfirstColStyle}">
226
            Max Raster Objects(Y):
227
            </td>
228
            <td class="{$secondColStyle}">
229
              <xsl:value-of select="."/>
230
            </td>
231
       </tr>
232
    </xsl:for-each>
233
    <xsl:for-each select="verticals">
234
       <tr><td class="{$spatialrasterfirstColStyle}">
235
            Max Raster Objects(Z):
236
            </td>
237
            <td class="{$secondColStyle}">
238
              <xsl:value-of select="."/>
239
            </td>
240
       </tr>
241
    </xsl:for-each>
242
    <xsl:for-each select="cellGeometry">
243
       <tr><td class="{$spatialrasterfirstColStyle}">
244
            Cell Geometry:
245
            </td>
246
            <td class="{$secondColStyle}">
247
              <xsl:value-of select="."/>
248
            </td>
249
       </tr>
250
    </xsl:for-each>
251
    <xsl:for-each select="toneGradation">
252
       <tr><td class="{$spatialrasterfirstColStyle}">
253
            Number of Colors:
254
            </td>
255
            <td class="{$secondColStyle}">
256
              <xsl:value-of select="."/>
257
            </td>
258
       </tr>
259
    </xsl:for-each>
260
    <xsl:for-each select="scaleFactor">
261
       <tr><td class="{$spatialrasterfirstColStyle}">
262
            Scale Factor:
263
            </td>
264
            <td class="{$secondColStyle}">
265
              <xsl:value-of select="."/>
266
            </td>
267
       </tr>
268
    </xsl:for-each>
269
     <xsl:for-each select="offset">
270
       <tr><td class="{$spatialrasterfirstColStyle}">
271
            Offset:
272
            </td>
273
            <td class="{$secondColStyle}">
274
              <xsl:value-of select="."/>
275
            </td>
276
       </tr>
277
    </xsl:for-each>
278
    <xsl:for-each select="imageDescription">
279
      <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
280
        Image Info:
281
      </td></tr>
282
      <xsl:call-template name="imageDescription">
283
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
284
      </xsl:call-template>
285
    </xsl:for-each>
286
    <xsl:if test="$withAttributes='1'">
287
    <xsl:for-each select="attributeList">
288
      <xsl:call-template name="spatialRasterAttributeList">
289
        <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
290
        <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
291
        <xsl:with-param name="docid" select="$docid"/>
292
        <xsl:with-param name="entityindex" select="$entityindex"/>
293
      </xsl:call-template>
294
    </xsl:for-each>
295
    </xsl:if>
296
    <!-- Here to display distribution info-->
297
    <xsl:for-each select="physical">
298
       <xsl:call-template name="spatialRasterShowDistribution">
299
          <xsl:with-param name="docid" select="$docid"/>
300
          <xsl:with-param name="entityindex" select="$entityindex"/>
301
          <xsl:with-param name="physicalindex" select="position()"/>
302
          <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
303
          <xsl:with-param name="spatialrastersubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
304
       </xsl:call-template>
305
    </xsl:for-each>
306
  </xsl:template>
307
308
  <!--****************************************************
309
       spatial reference
310
      ****************************************************-->
311
    <xsl:template name="spatialReference">
312
      <xsl:param name="spatialrasterfirstColStyle"/>
313
       <xsl:choose>
314
         <xsl:when test="references!=''">
315
          <xsl:variable name="ref_id" select="references"/>
316
          <xsl:variable name="references" select="$ids[@id=$ref_id]" />
317
          <xsl:for-each select="$references">
318
            <xsl:call-template name="spatialReferenceCommon">
319
              <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
320
            </xsl:call-template>
321
          </xsl:for-each>
322
        </xsl:when>
323
        <xsl:otherwise>
324
           <xsl:call-template name="spatialReferenceCommon">
325
              <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
326
            </xsl:call-template>
327
        </xsl:otherwise>
328
      </xsl:choose>
329
330
  </xsl:template>
331
332
333
  <xsl:template name="spatialReferenceCommon">
334
    <xsl:param name="spatialrasterfirstColStyle"/>
335
    <xsl:for-each select="horizCoordSysName">
336
       <tr><td class="{$spatialrasterfirstColStyle}">
337
            Name of Coordinate System:
338
            </td>
339
            <td class="{$secondColStyle}">
340
              <xsl:value-of select="."/>
341
            </td>
342
       </tr>
343
    </xsl:for-each>
344
    <xsl:for-each select="horizCoordSysDef/geogCoordSys">
345
       <tr><td class="{$spatialrasterfirstColStyle}">
346
            Definition of <xsl:text> </xsl:text><xsl:value-of select="../@name"/> <xsl:text> </xsl:text> (Geographic Coordinate System):
347
            </td>
348
            <td>
349
              <xsl:call-template name="geogCoordSysType">
350
                 <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
351
              </xsl:call-template>
352
            </td>
353
       </tr>
354
    </xsl:for-each>
355
    <xsl:for-each select="horizCoordSysDef/projCoordSys">
356
      <xsl:for-each select="geogCoordSys">
357
       <tr><td class="{$spatialrasterfirstColStyle}">
358
            Definition of<xsl:text> </xsl:text><xsl:value-of select="../../@name"/><xsl:text> </xsl:text>(Geographic Coordinate System):
359
            </td>
360
            <td>
361
              <xsl:call-template name="geogCoordSysType">
362
                 <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
363
              </xsl:call-template>
364
            </td>
365
       </tr>
366
     </xsl:for-each>
367
     <xsl:for-each select="projection">
368
       <tr><td class="{$spatialrasterfirstColStyle}">
369
            Projection in Geo Coord. System:
370
            </td>
371
            <td>
372
               <table class="{$tabledefaultStyle}">
373
                 <xsl:for-each select="parameter">
374
                     <tr><td class="{$spatialrasterfirstColStyle}">
375
                          <xsl:value-of select="./@name"/>:
376
                         </td>
377
                         <td>
378
                             <table class="{$tabledefaultStyle}">
379
                                <tr>
380
                                    <td class="{$secondColStyle}">
381
                                      <xsl:value-of select="./@value"/>
382
                                    </td>
383
                                    <td class="{$secondColStyle}">
384
                                       <xsl:value-of select="./@description"/>
385
                                    </td>
386
                                 </tr>
387
                             </table>
388
                          </td>
389
                      </tr>
390
                 </xsl:for-each>
391
                 <xsl:for-each select="unit">
392
                    <tr><td class="{$spatialrasterfirstColStyle}">
393
                          Unit:
394
                        </td>
395
                        <td class="{$secondColStyle}">
396
                           <xsl:value-of select="./@name"/>
397
                        </td>
398
                   </tr>
399
                </xsl:for-each>
400
              </table>
401
            </td>
402
       </tr>
403
     </xsl:for-each>
404
    </xsl:for-each>
405
    <xsl:for-each select="vertCoordSys/altitudeSysDef">
406
       <tr><td class="{$spatialrasterfirstColStyle}">
407
            Altitude System Definition:
408
            </td>
409
            <td>
410
               <table class="{$tabledefaultStyle}">
411
                 <xsl:for-each select="altitudeDatumName">
412
                     <tr><td class="{$spatialrasterfirstColStyle}">
413
                          Datum:
414
                         </td>
415
                         <td class="{$secondColStyle}">
416
                            <xsl:value-of select="."/>
417
                          </td>
418
                      </tr>
419
                 </xsl:for-each>
420
                 <xsl:for-each select="altitudeResolution">
421
                    <tr><td class="{$spatialrasterfirstColStyle}">
422
                          Resolution:
423
                        </td>
424
                        <td class="{$secondColStyle}">
425
                           <xsl:value-of select="."/>
426
                        </td>
427
                   </tr>
428
                </xsl:for-each>
429
                <xsl:for-each select="altitudeDistanceUnits">
430
                    <tr><td class="{$spatialrasterfirstColStyle}">
431
                          Distance Unit:
432
                        </td>
433
                        <td class="{$secondColStyle}">
434
                           <xsl:value-of select="."/>
435
                        </td>
436
                   </tr>
437
                </xsl:for-each>
438
                <xsl:for-each select="altitudeEncodingMethod">
439
                    <tr><td class="{$spatialrasterfirstColStyle}">
440
                          Encoding Method:
441
                        </td>
442
                        <td class="{$secondColStyle}">
443
                           <xsl:value-of select="."/>
444
                        </td>
445
                   </tr>
446
                </xsl:for-each>
447
              </table>
448
            </td>
449
       </tr>
450
    </xsl:for-each>
451
    <xsl:for-each select="vertCoordSys/depthSysDef">
452
        <tr><td class="{$spatialrasterfirstColStyle}">
453
            Depth System Definition:
454
            </td>
455
            <td>
456
               <table class="{$tabledefaultStyle}">
457
                 <xsl:for-each select="depthDatumName">
458
                     <tr><td class="{$spatialrasterfirstColStyle}">
459
                          Datum:
460
                         </td>
461
                         <td class="{$secondColStyle}">
462
                            <xsl:value-of select="."/>
463
                          </td>
464
                      </tr>
465
                 </xsl:for-each>
466
                 <xsl:for-each select="depthResolution">
467
                    <tr><td class="{$spatialrasterfirstColStyle}">
468
                          Resolution:
469
                        </td>
470
                        <td class="{$secondColStyle}">
471
                           <xsl:value-of select="."/>
472
                        </td>
473
                   </tr>
474
                </xsl:for-each>
475
                <xsl:for-each select="depthDistanceUnits">
476
                    <tr><td class="{$spatialrasterfirstColStyle}">
477
                          Distance Unit:
478
                        </td>
479
                        <td class="{$secondColStyle}">
480
                           <xsl:value-of select="."/>
481
                        </td>
482
                   </tr>
483
                </xsl:for-each>
484
                <xsl:for-each select="depthEncodingMethod">
485
                    <tr><td class="{$spatialrasterfirstColStyle}">
486
                          Encoding Method:
487
                        </td>
488
                        <td class="{$secondColStyle}">
489
                           <xsl:value-of select="."/>
490
                        </td>
491
                   </tr>
492
                </xsl:for-each>
493
              </table>
494
            </td>
495
       </tr>
496
    </xsl:for-each>
497
  </xsl:template>
498
499
  <xsl:template name="geogCoordSysType">
500
   <xsl:param name="spatialrasterfirstColStyle"/>
501
   <table class="{$tabledefaultStyle}">
502
      <xsl:for-each select="datum">
503
        <tr><td class="{$spatialrasterfirstColStyle}">
504
             Datum:
505
            </td>
506
            <td class="{$secondColStyle}">
507
              <xsl:value-of select="./@name"/>
508
            </td>
509
        </tr>
510
      </xsl:for-each>
511
      <xsl:for-each select="spheroid">
512
        <tr><td class="{$spatialrasterfirstColStyle}">
513
             Spheroid:
514
            </td>
515
            <td>
516
               <table class="{$tabledefaultStyle}">
517
                  <tr><td class="{$spatialrasterfirstColStyle}">
518
                       Name:
519
                       </td>
520
                       <td class="{$secondColStyle}">
521
                        <xsl:value-of select="./@name"/>
522
                       </td>
523
                   </tr>
524
                   <tr><td class="{$spatialrasterfirstColStyle}">
525
                       Semi Axis Major:
526
                       </td>
527
                       <td class="{$secondColStyle}">
528
                        <xsl:value-of select="./@semiAxisMajor"/>
529
                       </td>
530
                   </tr>
531
                   <tr><td class="{$spatialrasterfirstColStyle}">
532
                       Denom Flat Ratio:
533
                       </td>
534
                       <td class="{$secondColStyle}">
535
                        <xsl:value-of select="./@denomFlatRatio"/>
536
                       </td>
537
                   </tr>
538
               </table>
539
540
            </td>
541
        </tr>
542
      </xsl:for-each>
543
       <xsl:for-each select="primeMeridian">
544
        <tr><td class="{$spatialrasterfirstColStyle}">
545
             Prime Meridian:
546
            </td>
547
            <td>
548
               <table class="{$tabledefaultStyle}">
549
                  <tr><td class="{$spatialrasterfirstColStyle}">
550
                       Name:
551
                       </td>
552
                       <td class="{$secondColStyle}">
553
                        <xsl:value-of select="./@name"/>
554
                       </td>
555
                   </tr>
556
                   <tr><td class="{$spatialrasterfirstColStyle}">
557
                       Longitude:
558
                       </td>
559
                       <td class="{$secondColStyle}">
560
                        <xsl:value-of select="./@longitude"/>
561
                       </td>
562
                   </tr>
563
               </table>
564
            </td>
565
        </tr>
566
      </xsl:for-each>
567
     <xsl:for-each select="unit">
568
        <tr><td class="{$spatialrasterfirstColStyle}">
569
             Unit:
570
            </td>
571
            <td class="{$secondColStyle}">
572
              <xsl:value-of select="./@name"/>
573
            </td>
574
        </tr>
575
      </xsl:for-each>
576
   </table>
577
  </xsl:template>
578
579
  <!--*******************************************************
580
       georeferenceinfo
581
      *******************************************************-->
582
 <xsl:template name="georeferenceInfo">
583
    <xsl:param name="spatialrasterfirstColStyle"/>
584
    <xsl:for-each select="cornerPoint">
585
        <tr><td class="{$spatialrasterfirstColStyle}">
586
            Corner Point:
587
            </td>
588
            <td>
589
               <table class="{$tabledefaultStyle}">
590
                 <xsl:for-each select="corner">
591
                     <tr><td class="{$spatialrasterfirstColStyle}">
592
                          Corner:
593
                         </td>
594
                         <td class="{$secondColStyle}">
595
                            <xsl:value-of select="."/>
596
                          </td>
597
                      </tr>
598
                 </xsl:for-each>
599
                 <xsl:for-each select="xCoordinate">
600
                    <tr><td class="{$spatialrasterfirstColStyle}">
601
                          xCoordinate:
602
                        </td>
603
                        <td class="{$secondColStyle}">
604
                           <xsl:value-of select="."/>
605
                        </td>
606
                   </tr>
607
                </xsl:for-each>
608
                <xsl:for-each select="yCoordinate">
609
                    <tr><td class="{$spatialrasterfirstColStyle}">
610
                          yCoordinate:
611
                        </td>
612
                        <td class="{$secondColStyle}">
613
                           <xsl:value-of select="."/>
614
                        </td>
615
                   </tr>
616
                </xsl:for-each>
617
                <xsl:for-each select="pointInPixel">
618
                    <tr><td class="{$spatialrasterfirstColStyle}">
619
                          Point in Pixel:
620
                        </td>
621
                        <td class="{$secondColStyle}">
622
                           <xsl:value-of select="."/>
623
                        </td>
624
                   </tr>
625
                </xsl:for-each>
626
              </table>
627
            </td>
628
       </tr>
629
    </xsl:for-each>
630
    <xsl:for-each select="controlPoint">
631
       <tr><td class="{$spatialrasterfirstColStyle}">
632
            Control Point:
633
            </td>
634
            <td>
635
               <table class="{$tabledefaultStyle}">
636
                 <xsl:for-each select="column">
637
                     <tr><td class="{$spatialrasterfirstColStyle}">
638
                          Column Location:
639
                         </td>
640
                         <td class="{$secondColStyle}">
641
                            <xsl:value-of select="."/>
642
                          </td>
643
                      </tr>
644
                 </xsl:for-each>
645
                 <xsl:for-each select="row">
646
                     <tr><td class="{$spatialrasterfirstColStyle}">
647
                          Row Location:
648
                         </td>
649
                         <td class="{$secondColStyle}">
650
                            <xsl:value-of select="."/>
651
                          </td>
652
                      </tr>
653
                 </xsl:for-each>
654
                 <xsl:for-each select="xCoordinate">
655
                    <tr><td class="{$spatialrasterfirstColStyle}">
656
                          xCoordinate:
657
                        </td>
658
                        <td class="{$secondColStyle}">
659
                           <xsl:value-of select="."/>
660
                        </td>
661
                   </tr>
662
                </xsl:for-each>
663
                <xsl:for-each select="yCoordinate">
664
                    <tr><td class="{$spatialrasterfirstColStyle}">
665
                          yCoordinate:
666
                        </td>
667
                        <td class="{$secondColStyle}">
668
                           <xsl:value-of select="."/>
669
                        </td>
670
                   </tr>
671
                </xsl:for-each>
672
                <xsl:for-each select="pointInPixel">
673
                    <tr><td class="{$spatialrasterfirstColStyle}">
674
                          Point in Pixel:
675
                        </td>
676
                        <td class="{$secondColStyle}">
677
                           <xsl:value-of select="."/>
678
                        </td>
679
                   </tr>
680
                </xsl:for-each>
681
              </table>
682
            </td>
683
       </tr>
684
    </xsl:for-each>
685
    <xsl:for-each select="bilinearFit">
686
       <tr><td class="{$spatialrasterfirstColStyle}">
687
            Bilinear Fit:
688
            </td>
689
            <td>
690
               <table class="{$tabledefaultStyle}">
691
                 <xsl:for-each select="xIntercept">
692
                     <tr><td class="{$spatialrasterfirstColStyle}">
693
                          X Intercept:
694
                         </td>
695
                         <td class="{$secondColStyle}">
696
                            <xsl:value-of select="."/>
697
                          </td>
698
                      </tr>
699
                 </xsl:for-each>
700
                 <xsl:for-each select="xSlope">
701
                    <tr><td class="{$spatialrasterfirstColStyle}">
702
                          X Slope:
703
                        </td>
704
                        <td class="{$secondColStyle}">
705
                           <xsl:value-of select="."/>
706
                        </td>
707
                   </tr>
708
                </xsl:for-each>
709
                <xsl:for-each select="yIntercept">
710
                    <tr><td class="{$spatialrasterfirstColStyle}">
711
                          Y Intercept:
712
                        </td>
713
                        <td class="{$secondColStyle}">
714
                           <xsl:value-of select="."/>
715
                        </td>
716
                   </tr>
717
                </xsl:for-each>
718
                <xsl:for-each select="ySlope">
719
                    <tr><td class="{$spatialrasterfirstColStyle}">
720
                          Y Slope:
721
                        </td>
722
                        <td class="{$secondColStyle}">
723
                           <xsl:value-of select="."/>
724
                        </td>
725
                   </tr>
726
                </xsl:for-each>
727
              </table>
728
            </td>
729
       </tr>
730
    </xsl:for-each>
731
 </xsl:template>
732
733
 <!--********************************************************
734
     data quality
735
     ********************************************************-->
736
 <xsl:template name="dataQuality">
737
   <xsl:param name="spatialrasterfirstColStyle"/>
738
   <xsl:for-each select="accuracyReport">
739
       <tr><td class="{$spatialrasterfirstColStyle}">
740
             Report:
741
            </td>
742
            <td class="{$secondColStyle}">
743
                <xsl:value-of select="."/>
744
            </td>
745
       </tr>
746
   </xsl:for-each>
747
   <xsl:if test="quantitativeAccuracyReport">
748
       <tr><td class="{$spatialrasterfirstColStyle}">
749
             Quantitative Report:
750
            </td>
751
            <td>
752
                <table class="{$tabledefaultStyle}">
753
                  <xsl:for-each select="quantitativeAccuracyReport">
754
                     <tr><td class="{$spatialrasterfirstColStyle}">
755
                         Accuracy Value:
756
                      </td>
757
                      <td class="{$secondColStyle}">
758
                        <xsl:value-of select="quantitativeAccuracyValue"/>
759
                      </td>
760
                    </tr>
761
                    <tr><td class="{$spatialrasterfirstColStyle}">
762
                         Method:
763
                      </td>
764
                      <td class="{$secondColStyle}">
765
                        <xsl:value-of select="quantitativeAccuracyMethod"/>
766
                      </td>
767
                    </tr>
768
                  </xsl:for-each>
769
                </table>
770
            </td>
771
       </tr>
772
   </xsl:if>
773
 </xsl:template>
774
775
 <!--********************************************************
776
     imageDescription
777
     *********************************************************-->
778
  <xsl:template name="imageDescription">
779
    <xsl:param name="spatialrasterfirstColStyle"/>
780
    <xsl:for-each select="illuminationElevationAngle">
781
        <tr><td class="{$spatialrasterfirstColStyle}">
782
             Illumination Elevation:
783
            </td>
784
            <td class="{$secondColStyle}">
785
                <xsl:value-of select="."/>
786
            </td>
787
       </tr>
788
    </xsl:for-each>
789
    <xsl:for-each select="illuminationAzimuthAngle">
790
        <tr><td class="{$spatialrasterfirstColStyle}">
791
             Illumination Azimuth:
792
            </td>
793
            <td class="{$secondColStyle}">
794
                <xsl:value-of select="."/>
795
            </td>
796
       </tr>
797
    </xsl:for-each>
798
    <xsl:for-each select="imageOrientationAngle">
799
        <tr><td class="{$spatialrasterfirstColStyle}">
800
             Image Orientation:
801
            </td>
802
            <td class="{$secondColStyle}">
803
                <xsl:value-of select="."/>
804
            </td>
805
       </tr>
806
    </xsl:for-each>
807
    <xsl:for-each select="imagingCondition">
808
        <tr><td class="{$spatialrasterfirstColStyle}">
809
             Code Affectting Quality of Image:
810
            </td>
811
            <td class="{$secondColStyle}">
812
                <xsl:value-of select="."/>
813
            </td>
814
       </tr>
815
    </xsl:for-each>
816
    <xsl:for-each select="imageQualityCode">
817
        <tr><td class="{$spatialrasterfirstColStyle}">
818
             Quality:
819
            </td>
820
            <td class="{$secondColStyle}">
821
                <xsl:value-of select="."/>
822
            </td>
823
       </tr>
824
    </xsl:for-each>
825
    <xsl:for-each select="cloudCoverPercentage">
826
        <tr><td class="{$spatialrasterfirstColStyle}">
827
             Cloud Coverage:
828
            </td>
829
            <td class="{$secondColStyle}">
830
                <xsl:value-of select="."/>
831
            </td>
832
       </tr>
833
    </xsl:for-each>
834
    <xsl:for-each select="preProcessingTypeCode">
835
        <tr><td class="{$spatialrasterfirstColStyle}">
836
             PreProcessing:
837
            </td>
838
            <td class="{$secondColStyle}">
839
                <xsl:value-of select="."/>
840
            </td>
841
       </tr>
842
    </xsl:for-each>
843
    <xsl:for-each select="compressionGenerationQuality">
844
        <tr><td class="{$spatialrasterfirstColStyle}">
845
             Compression Quality:
846
            </td>
847
            <td class="{$secondColStyle}">
848
                <xsl:value-of select="."/>
849
            </td>
850
       </tr>
851
    </xsl:for-each>
852
    <xsl:for-each select="triangulationIndicator">
853
        <tr><td class="{$spatialrasterfirstColStyle}">
854
             Triangulation Indicator:
855
            </td>
856
            <td class="{$secondColStyle}">
857
                <xsl:value-of select="."/>
858
            </td>
859
       </tr>
860
    </xsl:for-each>
861
    <xsl:for-each select="radionmetricDataAvailability">
862
        <tr><td class="{$spatialrasterfirstColStyle}">
863
             Availability of Radionmetric Data:
864
            </td>
865
            <td class="{$secondColStyle}">
866
                <xsl:value-of select="."/>
867
            </td>
868
       </tr>
869
    </xsl:for-each>
870
    <xsl:for-each select="cameraCalibrationInformationAvailability">
871
        <tr><td class="{$spatialrasterfirstColStyle}">
872
             Availability of Camera Calibration Correction:
873
            </td>
874
            <td class="{$secondColStyle}">
875
                <xsl:value-of select="."/>
876
            </td>
877
       </tr>
878
    </xsl:for-each>
879
    <xsl:for-each select="filmDistortionInformationAvailability">
880
        <tr><td class="{$spatialrasterfirstColStyle}">
881
             Availability of Calibration Reseau:
882
            </td>
883
            <td class="{$secondColStyle}">
884
                <xsl:value-of select="."/>
885
            </td>
886
       </tr>
887
    </xsl:for-each>
888
    <xsl:for-each select="lensDistortionInformationAvailability">
889
        <tr><td class="{$spatialrasterfirstColStyle}">
890
             Availability of Lens Aberration Correction:
891
            </td>
892
            <td class="{$secondColStyle}">
893
                <xsl:value-of select="."/>
894
            </td>
895
       </tr>
896
    </xsl:for-each>
897
    <xsl:for-each select="bandDescription">
898
     <tr><td class="{$spatialrasterfirstColStyle}">
899
             Availability of Lens Aberration Correction:
900
            </td>
901
            <td>
902
               <xsl:call-template name="bandDescription">
903
                  <xsl:with-param name="spatialrasterfirstColStyle" select="$spatialrasterfirstColStyle"/>
904
               </xsl:call-template>
905
            </td>
906
      </tr>
907
    </xsl:for-each>
908
  </xsl:template>
909
910
  <!--***********************************************
911
      band description
912
      ************************************************-->
913
  <xsl:template name="bandDescription">
914
    <xsl:param name="spatialrasterfirstColStyle"/>
915
    <table class="{$tabledefaultStyle}">
916
      <xsl:for-each select="sequenceIdentifier">
917
        <tr><td class="{$spatialrasterfirstColStyle}">
918
            Sequence Identifier:
919
            </td>
920
            <td class="{$secondColStyle}">
921
                <xsl:value-of select="."/>
922
            </td>
923
        </tr>
924
     </xsl:for-each>
925
     <xsl:for-each select="highWavelength">
926
        <tr><td class="{$spatialrasterfirstColStyle}">
927
             High Wave Length:
928
            </td>
929
            <td class="{$secondColStyle}">
930
                <xsl:value-of select="."/>
931
            </td>
932
        </tr>
933
     </xsl:for-each>
934
     <xsl:for-each select="lowWaveLength">
935
        <tr><td class="{$spatialrasterfirstColStyle}">
936
             High Wave Length:
937
            </td>
938
            <td class="{$secondColStyle}">
939
                <xsl:value-of select="."/>
940
            </td>
941
        </tr>
942
     </xsl:for-each>
943
     <xsl:for-each select="waveLengthUnits">
944
        <tr><td class="{$spatialrasterfirstColStyle}">
945
             Wave Length Units:
946
            </td>
947
            <td class="{$secondColStyle}">
948
                <xsl:value-of select="."/>
949
            </td>
950
        </tr>
951
     </xsl:for-each>
952
     <xsl:for-each select="peakResponse">
953
        <tr><td class="{$spatialrasterfirstColStyle}">
954
             Peak Response:
955
            </td>
956
            <td class="{$secondColStyle}">
957
                <xsl:value-of select="."/>
958
            </td>
959
        </tr>
960
     </xsl:for-each>
961
    </table>
962
  </xsl:template>
963
964
  <xsl:template name="spatialRasterShowDistribution">
965
     <xsl:param name="spatialrasterfirstColStyle"/>
966
     <xsl:param name="spatialrastersubHeaderStyle"/>
967
     <xsl:param name="docid"/>
968
     <xsl:param name="level">entitylevel</xsl:param>
969
     <xsl:param name="entitytype">spatialRaster</xsl:param>
970
     <xsl:param name="entityindex"/>
971
     <xsl:param name="physicalindex"/>
972
973
    <xsl:for-each select="distribution">
974
      <tr><td colspan="2">
975
        <xsl:call-template name="distribution">
976
          <xsl:with-param name="docid" select="$docid"/>
977
          <xsl:with-param name="level" select="$level"/>
978
          <xsl:with-param name="entitytype" select="$entitytype"/>
979
          <xsl:with-param name="entityindex" select="$entityindex"/>
980
          <xsl:with-param name="physicalindex" select="$physicalindex"/>
981
          <xsl:with-param name="distributionindex" select="position()"/>
982
          <xsl:with-param name="disfirstColStyle" select="$spatialrasterfirstColStyle"/>
983
          <xsl:with-param name="dissubHeaderStyle" select="$spatialrastersubHeaderStyle"/>
984
        </xsl:call-template>
985
      </td></tr>
986
    </xsl:for-each>
987
  </xsl:template>
988
989
990
  <xsl:template name="spatialRasterAttributeList">
991
    <xsl:param name="spatialrasterfirstColStyle"/>
992
    <xsl:param name="spatialrastersubHeaderStyle"/>
993
    <xsl:param name="docid"/>
994
    <xsl:param name="entitytype">spatialRaster</xsl:param>
995
    <xsl:param name="entityindex"/>
996
    <tr><td class="{$spatialrastersubHeaderStyle}" colspan="2">
997
        <xsl:text>Attribute(s) Info:</xsl:text>
998
    </td></tr>
999
    <tr><td colspan="2">
1000
         <xsl:call-template name="attributelist">
1001
           <xsl:with-param name="docid" select="$docid"/>
1002
           <xsl:with-param name="entitytype" select="$entitytype"/>
1003
           <xsl:with-param name="entityindex" select="$entityindex"/>
1004
         </xsl:call-template>
1005
       </td>
1006
    </tr>
1007
  </xsl:template>
1008
1009
</xsl:stylesheet>