pyogrio 0.8.0__cp311-cp311-win_amd64.whl → 0.10.0__cp311-cp311-win_amd64.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of pyogrio might be problematic. Click here for more details.

Files changed (101) hide show
  1. pyogrio/__init__.py +26 -18
  2. pyogrio/_compat.py +7 -1
  3. pyogrio/_env.py +4 -6
  4. pyogrio/_err.c +460 -445
  5. pyogrio/_err.cp311-win_amd64.pyd +0 -0
  6. pyogrio/_geometry.c +645 -612
  7. pyogrio/_geometry.cp311-win_amd64.pyd +0 -0
  8. pyogrio/_io.c +7764 -7602
  9. pyogrio/_io.cp311-win_amd64.pyd +0 -0
  10. pyogrio/_ogr.c +601 -609
  11. pyogrio/_ogr.cp311-win_amd64.pyd +0 -0
  12. pyogrio/_version.py +3 -3
  13. pyogrio/_vsi.c +7570 -2514
  14. pyogrio/_vsi.cp311-win_amd64.pyd +0 -0
  15. pyogrio/core.py +86 -20
  16. pyogrio/errors.py +9 -16
  17. pyogrio/gdal_data/GDAL-targets.cmake +1 -1
  18. pyogrio/gdal_data/GDALConfig.cmake +0 -1
  19. pyogrio/gdal_data/GDALConfigVersion.cmake +3 -3
  20. pyogrio/gdal_data/MM_m_idofic.csv +321 -0
  21. pyogrio/gdal_data/gdaltileindex.xsd +269 -0
  22. pyogrio/gdal_data/gdalvrt.xsd +130 -22
  23. pyogrio/gdal_data/ogrinfo_output.schema.json +23 -0
  24. pyogrio/gdal_data/ogrvrt.xsd +3 -0
  25. pyogrio/gdal_data/pci_datum.txt +222 -155
  26. pyogrio/gdal_data/pci_ellips.txt +90 -38
  27. pyogrio/gdal_data/vcpkg.spdx.json +21 -21
  28. pyogrio/gdal_data/vcpkg_abi_info.txt +27 -27
  29. pyogrio/geopandas.py +44 -27
  30. pyogrio/proj_data/proj-config-version.cmake +2 -2
  31. pyogrio/proj_data/proj-targets.cmake +1 -1
  32. pyogrio/proj_data/proj.db +0 -0
  33. pyogrio/proj_data/proj4-targets.cmake +1 -1
  34. pyogrio/proj_data/projjson.schema.json +1 -1
  35. pyogrio/proj_data/vcpkg.spdx.json +17 -17
  36. pyogrio/proj_data/vcpkg_abi_info.txt +15 -15
  37. pyogrio/raw.py +46 -30
  38. pyogrio/tests/conftest.py +206 -12
  39. pyogrio/tests/fixtures/README.md +32 -13
  40. pyogrio/tests/fixtures/curve.gpkg +0 -0
  41. pyogrio/tests/fixtures/{test_multisurface.gpkg → curvepolygon.gpkg} +0 -0
  42. pyogrio/tests/fixtures/line_zm.gpkg +0 -0
  43. pyogrio/tests/fixtures/multisurface.gpkg +0 -0
  44. pyogrio/tests/test_arrow.py +178 -24
  45. pyogrio/tests/test_core.py +162 -72
  46. pyogrio/tests/test_geopandas_io.py +341 -96
  47. pyogrio/tests/test_path.py +30 -17
  48. pyogrio/tests/test_raw_io.py +165 -54
  49. pyogrio/tests/test_util.py +56 -0
  50. pyogrio/util.py +55 -31
  51. pyogrio-0.10.0.dist-info/DELVEWHEEL +2 -0
  52. {pyogrio-0.8.0.dist-info → pyogrio-0.10.0.dist-info}/LICENSE +1 -1
  53. {pyogrio-0.8.0.dist-info → pyogrio-0.10.0.dist-info}/METADATA +37 -8
  54. {pyogrio-0.8.0.dist-info → pyogrio-0.10.0.dist-info}/RECORD +74 -89
  55. {pyogrio-0.8.0.dist-info → pyogrio-0.10.0.dist-info}/WHEEL +1 -1
  56. pyogrio.libs/{Lerc-62a2c1c74500e7815994b3e49b36750c.dll → Lerc-089e3fef3df84b17326dcddbf1dedaa4.dll} +0 -0
  57. pyogrio.libs/{gdal-2bfc6a9f962a8953b0640db9a272d797.dll → gdal-debee5933f0da7bb90b4bcd009023377.dll} +0 -0
  58. pyogrio.libs/{geos-289d7171bd083dfed1f8a90e4ae57442.dll → geos-ace4c5b5c1f569bb4213e7bbd0b0322e.dll} +0 -0
  59. pyogrio.libs/{geos_c-2a12859cd876719c648f1eb950b7d94c.dll → geos_c-7478ca0a86136b280d9b2d245c6f6627.dll} +0 -0
  60. pyogrio.libs/geotiff-c8fe8a095520a4ea4e465d27e06add3a.dll +0 -0
  61. pyogrio.libs/{iconv-2-f2d9304f8dc4cdd981024b520b73a099.dll → iconv-2-27352d156a5467ca5383d3951093ea5a.dll} +0 -0
  62. pyogrio.libs/{jpeg62-a67b2bf7fd32d34c565ae5bb6d47c224.dll → jpeg62-e56b6f95a95af498f4623b8da4cebd46.dll} +0 -0
  63. pyogrio.libs/{json-c-79a8df7e59952f5c5d594620e4b66c13.dll → json-c-c84940e2654a4f8468bfcf2ce992aa93.dll} +0 -0
  64. pyogrio.libs/libcurl-d69cfd4ad487d53d58743b6778ec85e7.dll +0 -0
  65. pyogrio.libs/{libexpat-fa55f107b678de136400c6d953c3cdde.dll → libexpat-6576a8d02641b6a3dbad35901ec200a7.dll} +0 -0
  66. pyogrio.libs/liblzma-9ee4accb476ec1ae24e924953140273d.dll +0 -0
  67. pyogrio.libs/{libpng16-6227e9a35c2a350ae6b0586079c10b9e.dll → libpng16-7c36142dda59f186f6bb683e8dae2bfe.dll} +0 -0
  68. pyogrio.libs/{msvcp140-46db46e967c8db2cb7a20fc75872a57e.dll → msvcp140-98b3e5b80de1e5e9d1703b786d795623.dll} +0 -0
  69. pyogrio.libs/proj-a408c5327f3fd2f5fabe8c56815beed7.dll +0 -0
  70. pyogrio.libs/{qhull_r-d8840f4ed1f7d452ff9a30237320bcfd.dll → qhull_r-516897f855568caab1ab1fe37912766c.dll} +0 -0
  71. pyogrio.libs/sqlite3-9bc109d8536d5ed9666332fec94485fc.dll +0 -0
  72. pyogrio.libs/{tiff-ffca1ff19d0e95dad39df0078fb037af.dll → tiff-9b3f605fffe0bccc0a964c374ee4f820.dll} +0 -0
  73. pyogrio.libs/{zlib1-aaba6ea052f6d3fa3d84a301e3eb3d30.dll → zlib1-e5af16a15c63f05bd82d90396807ae5b.dll} +0 -0
  74. pyogrio/_err.pxd +0 -4
  75. pyogrio/_err.pyx +0 -250
  76. pyogrio/_geometry.pxd +0 -4
  77. pyogrio/_geometry.pyx +0 -129
  78. pyogrio/_io.pxd +0 -0
  79. pyogrio/_io.pyx +0 -2738
  80. pyogrio/_ogr.pxd +0 -441
  81. pyogrio/_ogr.pyx +0 -346
  82. pyogrio/_vsi.pxd +0 -4
  83. pyogrio/_vsi.pyx +0 -140
  84. pyogrio/arrow_bridge.h +0 -115
  85. pyogrio/gdal_data/bag_template.xml +0 -201
  86. pyogrio/gdal_data/gmlasconf.xml +0 -169
  87. pyogrio/gdal_data/gmlasconf.xsd +0 -1066
  88. pyogrio/gdal_data/netcdf_config.xsd +0 -143
  89. pyogrio/gdal_data/template_tiles.mapml +0 -28
  90. pyogrio/tests/fixtures/test_datetime.geojson +0 -7
  91. pyogrio/tests/fixtures/test_datetime_tz.geojson +0 -8
  92. pyogrio/tests/fixtures/test_fgdb.gdb.zip +0 -0
  93. pyogrio/tests/fixtures/test_nested.geojson +0 -18
  94. pyogrio/tests/fixtures/test_ogr_types_list.geojson +0 -12
  95. pyogrio-0.8.0.dist-info/DELVEWHEEL +0 -2
  96. pyogrio.libs/geotiff-d1c0fcc3c454409ad8be61ff04a7422c.dll +0 -0
  97. pyogrio.libs/libcurl-7fef9869f6520a5fbdb2bc9ce4c496cc.dll +0 -0
  98. pyogrio.libs/liblzma-5a1f648afc3d4cf36e3aef2266d55143.dll +0 -0
  99. pyogrio.libs/proj-74051a73897c9fa6d7bfef4561688568.dll +0 -0
  100. pyogrio.libs/sqlite3-fe7a86058d1c5658d1f9106228a7fd83.dll +0 -0
  101. {pyogrio-0.8.0.dist-info → pyogrio-0.10.0.dist-info}/top_level.txt +0 -0
@@ -0,0 +1,269 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <!--
3
+ /******************************************************************************
4
+ * $Id$
5
+ *
6
+ * Project: GDAL/OGR
7
+ * Purpose: XML Schema for GDAL GTI files.
8
+ * Author: Even Rouault, <even dot rouault at spatialys dot com>
9
+ *
10
+ **********************************************************************
11
+ * Copyright (c) 2023, Even Rouault
12
+ *
13
+ * Permission is hereby granted, free of charge, to any person obtaining a
14
+ * copy of this software and associated documentation files (the "Software"),
15
+ * to deal in the Software without restriction, including without limitation
16
+ * the rights to use, copy, modify, merge, publish, distribute, sublicense,
17
+ * and/or sell copies of the Software, and to permit persons to whom the
18
+ * Software is furnished to do so, subject to the following conditions:
19
+ *
20
+ * The above copyright notice and this permission notice shall be included
21
+ * in all copies or substantial portions of the Software.
22
+ *
23
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
24
+ * OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
25
+ * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
26
+ * THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
27
+ * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
28
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
29
+ * DEALINGS IN THE SOFTWARE.
30
+ ****************************************************************************/
31
+ -->
32
+ <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
33
+ <xs:element name="GDALTileIndexDataset">
34
+ <xs:complexType>
35
+ <xs:sequence>
36
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
37
+ <!-- IndexDataset is required for a standalone XML GTI -->
38
+ <!-- It is ignored if the XML document is embedded in the xml:GTI metadata domain of a vector layer -->
39
+ <xs:element name="IndexDataset" type="xs:string"/>
40
+
41
+ <xs:element name="IndexLayer" type="xs:string"/>
42
+ <xs:element name="Filter" type="xs:string"/>
43
+
44
+ <xs:element name="LocationField" type="xs:string" default="location"/>
45
+ <xs:element name="SortField" type="xs:string"/>
46
+ <xs:element name="SortFieldAsc" type="OGRBooleanType" default="true"/>
47
+
48
+ <xs:element name="SRS" type="SRSType"/>
49
+
50
+ <xs:element name="Resampling" type="xs:string"/>
51
+
52
+ <xs:element name="BlockXSize" type="nonNegativeInteger32" default="256"/>
53
+ <xs:element name="BlockYSize" type="nonNegativeInteger32" default="256"/>
54
+
55
+ <xs:element name="GeoTransform" type="xs:string"/>
56
+ <xs:element name="XSize" type="nonNegativeInteger32"/>
57
+ <xs:element name="YSize" type="nonNegativeInteger32"/>
58
+
59
+ <!-- None or both of the 2 following elements should be specified -->
60
+ <xs:element name="ResX" type="xs:double"/>
61
+ <xs:element name="ResY" type="xs:double"/>
62
+
63
+ <!-- None or all of the 4 following elements should be specified -->
64
+ <xs:element name="MinX" type="xs:double"/>
65
+ <xs:element name="MinY" type="xs:double"/>
66
+ <xs:element name="MaxX" type="xs:double"/>
67
+ <xs:element name="MaxY" type="xs:double"/>
68
+
69
+ <xs:element name="Metadata" type="MetadataType"/> <!-- may be repeated -->
70
+
71
+ <!-- BandCount is generally only defined if no Band elements are defined -->
72
+ <xs:element name="BandCount" type="xs:nonNegativeInteger"/>
73
+ <xs:element name="DataType" type="DataTypeType"/> <!-- single value that applies to all bands -->
74
+ <xs:element name="NoDataValue" type="DoubleOrNanType"/> <!-- single value that applies to all bands -->
75
+
76
+ <xs:element name="MaskBand" type="OGRBooleanType"/>
77
+
78
+ <xs:element name="Band" type="BandType"/> <!-- may be repeated -->
79
+ <xs:element name="Overview" type="OverviewType"/> <!-- may be repeated -->
80
+ </xs:choice>
81
+ </xs:sequence>
82
+ </xs:complexType>
83
+ </xs:element>
84
+
85
+ <xs:complexType name="BandType">
86
+ <xs:sequence>
87
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
88
+ <xs:element name="Description" type="xs:string"/>
89
+ <xs:element name="ColorInterp" type="ColorInterpType"/>
90
+ <xs:element name="NoDataValue" type="DoubleOrNanType"/>
91
+ <xs:element name="Offset" type="xs:double"/>
92
+ <xs:element name="Scale" type="xs:double"/>
93
+ <xs:element name="UnitType" type="xs:string"/>
94
+ <xs:element name="Metadata" type="MetadataType"/>
95
+ <xs:element name="CategoryNames" type="CategoryNamesType"/>
96
+ <xs:element name="ColorTable" type="ColorTableType"/>
97
+ <xs:element name="GDALRasterAttributeTable" type="GDALRasterAttributeTableType"/>
98
+ </xs:choice>
99
+ </xs:sequence>
100
+ <xs:attribute name="dataType" type="DataTypeType"/>
101
+ <xs:attribute name="band" type="xs:unsignedInt"/>
102
+ </xs:complexType>
103
+
104
+ <xs:complexType name="OverviewType">
105
+ <xs:sequence>
106
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
107
+ <xs:element name="Dataset" type="xs:string"/>
108
+ <xs:element name="Layer" type="xs:string"/>
109
+ <xs:element name="Factor" type="xs:double"/>
110
+ <xs:element name="OpenOptions" type="OpenOptionsType"/>
111
+ </xs:choice>
112
+ </xs:sequence>
113
+ </xs:complexType>
114
+
115
+ <xs:complexType name="OpenOptionsType">
116
+ <xs:sequence>
117
+ <xs:element name="OOI" type="OOIType" minOccurs="0" maxOccurs="unbounded"/>
118
+ </xs:sequence>
119
+ </xs:complexType>
120
+
121
+ <xs:complexType name="OOIType">
122
+ <xs:simpleContent>
123
+ <xs:extension base="xs:string">
124
+ <xs:attribute name="key" type="xs:string" use="required"/>
125
+ </xs:extension>
126
+ </xs:simpleContent>
127
+ </xs:complexType>
128
+
129
+ <xs:complexType name="MetadataType">
130
+ <xs:sequence>
131
+ <!--<xs:choice>-->
132
+ <!--<xs:element name="MDI" type="MDIType" minOccurs="0" maxOccurs="unbounded"/>-->
133
+ <xs:any processContents="skip" minOccurs="0" maxOccurs="unbounded"/>
134
+ <!--</xs:choice>-->
135
+ </xs:sequence>
136
+ <xs:attribute name="domain" type="xs:string"/>
137
+ <xs:attribute name="format" type="xs:string"/>
138
+ </xs:complexType>
139
+
140
+ <xs:simpleType name="nonNegativeInteger32">
141
+ <xs:restriction base="xs:nonNegativeInteger">
142
+ <xs:maxInclusive value="2147483647"/>
143
+ </xs:restriction>
144
+ </xs:simpleType>
145
+
146
+ <xs:simpleType name="DataTypeType">
147
+ <xs:restriction base="xs:string">
148
+ <xs:enumeration value="Byte"/>
149
+ <xs:enumeration value="UInt16"/>
150
+ <xs:enumeration value="Int16"/>
151
+ <xs:enumeration value="UInt32"/>
152
+ <xs:enumeration value="Int32"/>
153
+ <xs:enumeration value="UInt64"/>
154
+ <xs:enumeration value="Int64"/>
155
+ <xs:enumeration value="Float32"/>
156
+ <xs:enumeration value="Float64"/>
157
+ <xs:enumeration value="CInt16"/>
158
+ <xs:enumeration value="CInt32"/>
159
+ <xs:enumeration value="CFloat32"/>
160
+ <xs:enumeration value="CFloat64"/>
161
+ </xs:restriction>
162
+ </xs:simpleType>
163
+
164
+ <xs:simpleType name="ColorInterpType">
165
+ <xs:restriction base="xs:string">
166
+ <xs:enumeration value="Gray"/>
167
+ <xs:enumeration value="Palette"/>
168
+ <xs:enumeration value="Red"/>
169
+ <xs:enumeration value="Green"/>
170
+ <xs:enumeration value="Blue"/>
171
+ <xs:enumeration value="Alpha"/>
172
+ <xs:enumeration value="Hue"/>
173
+ <xs:enumeration value="Saturation"/>
174
+ <xs:enumeration value="Lightness"/>
175
+ <xs:enumeration value="Cyan"/>
176
+ <xs:enumeration value="Magenta"/>
177
+ <xs:enumeration value="Yellow"/>
178
+ <xs:enumeration value="Black"/>
179
+ <xs:enumeration value="YCbCr_Y"/>
180
+ <xs:enumeration value="YCbCr_Cb"/>
181
+ <xs:enumeration value="YCbCr_Cr"/>
182
+ <xs:enumeration value="Undefined"/>
183
+ </xs:restriction>
184
+ </xs:simpleType>
185
+
186
+ <xs:complexType name="SRSType">
187
+ <xs:simpleContent>
188
+ <xs:extension base="xs:string">
189
+ <xs:attribute name="dataAxisToSRSAxisMapping" type="xs:string"/>
190
+ <xs:attribute name="coordinateEpoch" type="xs:float"/>
191
+ </xs:extension>
192
+ </xs:simpleContent>
193
+ </xs:complexType>
194
+
195
+ <xs:simpleType name="DoubleOrNanType">
196
+ <xs:union memberTypes="xs:double NANType" />
197
+ </xs:simpleType>
198
+
199
+ <xs:simpleType name="NANType">
200
+ <xs:restriction base="xs:string">
201
+ <xs:enumeration value="nan"/>
202
+ <xs:enumeration value="NAN"/>
203
+ </xs:restriction>
204
+ </xs:simpleType>
205
+
206
+ <xs:simpleType name="OGRBooleanType">
207
+ <xs:restriction base="xs:string">
208
+ <xs:enumeration value="1"/>
209
+ <xs:enumeration value="0"/>
210
+ <xs:enumeration value="ON"/>
211
+ <xs:enumeration value="OFF"/>
212
+ <xs:enumeration value="on"/>
213
+ <xs:enumeration value="off"/>
214
+ <xs:enumeration value="YES"/>
215
+ <xs:enumeration value="NO"/>
216
+ <xs:enumeration value="yes"/>
217
+ <xs:enumeration value="no"/>
218
+ <xs:enumeration value="TRUE"/>
219
+ <xs:enumeration value="FALSE"/>
220
+ <xs:enumeration value="true"/>
221
+ <xs:enumeration value="false"/>
222
+ <xs:enumeration value="True"/>
223
+ <xs:enumeration value="False"/>
224
+ </xs:restriction>
225
+ </xs:simpleType>
226
+
227
+ <xs:complexType name="CategoryNamesType">
228
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
229
+ <xs:element name="Category" type="xs:string"/>
230
+ </xs:sequence>
231
+ </xs:complexType>
232
+
233
+ <xs:complexType name="ColorTableType">
234
+ <xs:sequence minOccurs="0" maxOccurs="unbounded">
235
+ <xs:element name="Entry" type="ColorTableEntryType"/>
236
+ </xs:sequence>
237
+ </xs:complexType>
238
+
239
+ <xs:complexType name="ColorTableEntryType">
240
+ <xs:attribute name="c1" type="xs:unsignedInt" use="required"/>
241
+ <xs:attribute name="c2" type="xs:unsignedInt" use="required" />
242
+ <xs:attribute name="c3" type="xs:unsignedInt" use="required" />
243
+ <xs:attribute name="c4" type="xs:unsignedInt" />
244
+ </xs:complexType>
245
+
246
+ <xs:complexType name="GDALRasterAttributeTableType">
247
+ <xs:sequence>
248
+ <xs:element name="FieldDefn" type="FieldDefnType" minOccurs="0" maxOccurs="unbounded"/>
249
+ <xs:element name="Row" type="RowType" minOccurs="0" maxOccurs="unbounded"/>
250
+ </xs:sequence>
251
+ </xs:complexType>
252
+
253
+ <xs:complexType name="FieldDefnType">
254
+ <xs:sequence>
255
+ <xs:element name="Name" type="xs:string"/>
256
+ <xs:element name="Type" type="xs:unsignedInt"/>
257
+ <xs:element name="Usage" type="xs:unsignedInt"/>
258
+ </xs:sequence>
259
+ <xs:attribute name="index" type="xs:unsignedInt" use="required"/>
260
+ </xs:complexType>
261
+
262
+ <xs:complexType name="RowType">
263
+ <xs:sequence>
264
+ <xs:element name="F" type="xs:anyType" minOccurs="0" maxOccurs="unbounded"/>
265
+ </xs:sequence>
266
+ <xs:attribute name="index" type="xs:unsignedInt" use="required"/>
267
+ </xs:complexType>
268
+
269
+ </xs:schema>
@@ -30,30 +30,76 @@
30
30
  ****************************************************************************/
31
31
  -->
32
32
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified" version="1.0">
33
- <xs:element name="VRTDataset">
34
- <xs:complexType>
35
- <xs:sequence>
36
- <xs:choice minOccurs="0" maxOccurs="unbounded">
37
- <xs:element name="SRS" type="SRSType"/>
38
- <xs:element name="GeoTransform" type="xs:string"/>
39
- <xs:element name="GCPList" type="GCPListType"/>
40
- <xs:element name="BlockXSize" type="nonNegativeInteger32"/>
41
- <xs:element name="BlockYSize" type="nonNegativeInteger32"/>
42
- <xs:element name="Metadata" type="MetadataType"/> <!-- may be repeated -->
43
- <xs:element name="VRTRasterBand" type="VRTRasterBandType"/> <!-- may be repeated -->
44
- <xs:element name="MaskBand" type="MaskBandType"/>
45
- <xs:element name="GDALWarpOptions" type="GDALWarpOptionsType"/> <!-- only if subClass="VRTWarpedDataset" -->
46
- <xs:element name="PansharpeningOptions" type="PansharpeningOptionsType"/> <!-- only if subClass="VRTPansharpenedDataset" -->
47
- <xs:element name="Group" type="GroupType"/> <!-- only for multidimensional dataset -->
48
- <xs:element name="OverviewList" type="OverviewListType"/>
49
- </xs:choice>
50
- </xs:sequence>
51
- <xs:attribute name="subClass" type="xs:string"/>
52
- <xs:attribute name="rasterXSize" type="nonNegativeInteger32"/>
53
- <xs:attribute name="rasterYSize" type="nonNegativeInteger32"/>
54
- </xs:complexType>
33
+ <xs:element name="VRTDataset" type="VRTDatasetType">
34
+ <xs:annotation>
35
+ <xs:documentation>Root element</xs:documentation>
36
+ </xs:annotation>
55
37
  </xs:element>
56
38
 
39
+ <xs:complexType name="VRTDatasetType">
40
+ <xs:sequence>
41
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
42
+ <xs:element name="SRS" type="SRSType"/>
43
+ <xs:element name="GeoTransform" type="xs:string"/>
44
+ <xs:element name="GCPList" type="GCPListType"/>
45
+ <xs:element name="BlockXSize" type="nonNegativeInteger32"/>
46
+ <xs:element name="BlockYSize" type="nonNegativeInteger32"/>
47
+ <xs:element name="Metadata" type="MetadataType">
48
+ <xs:annotation>
49
+ <xs:documentation>May be repeated</xs:documentation>
50
+ </xs:annotation>
51
+ </xs:element>
52
+ <xs:element name="VRTRasterBand" type="VRTRasterBandType">
53
+ <xs:annotation>
54
+ <xs:documentation>May be repeated</xs:documentation>
55
+ </xs:annotation>
56
+ </xs:element>
57
+ <xs:element name="MaskBand" type="MaskBandType"/>
58
+ <xs:element name="GDALWarpOptions" type="GDALWarpOptionsType">
59
+ <xs:annotation>
60
+ <xs:documentation>Allowed only if subClass="VRTWarpedDataset"</xs:documentation>
61
+ </xs:annotation>
62
+ </xs:element>
63
+ <xs:element name="PansharpeningOptions" type="PansharpeningOptionsType">
64
+ <xs:annotation>
65
+ <xs:documentation>Allowed only if subClass="VRTPansharpenedDataset"</xs:documentation>
66
+ </xs:annotation>
67
+ </xs:element>
68
+ <xs:element name="Input" type="InputType">
69
+ <xs:annotation>
70
+ <xs:documentation>Allowed only if subClass="VRTProcessedDataset"</xs:documentation>
71
+ </xs:annotation>
72
+ </xs:element>
73
+ <xs:element name="ProcessingSteps" type="ProcessingStepsType">
74
+ <xs:annotation>
75
+ <xs:documentation>Allowed only if subClass="VRTProcessedDataset"</xs:documentation>
76
+ </xs:annotation>
77
+ </xs:element>
78
+ <xs:element name="Group" type="GroupType">
79
+ <xs:annotation>
80
+ <xs:documentation>only for multidimensional dataset</xs:documentation>
81
+ </xs:annotation>
82
+ </xs:element>
83
+ <xs:element name="OverviewList" type="OverviewListType"/>
84
+ </xs:choice>
85
+ </xs:sequence>
86
+ <xs:attribute name="subClass" type="DatasetSubclassType"/>
87
+ <xs:attribute name="rasterXSize" type="nonNegativeInteger32"/>
88
+ <xs:attribute name="rasterYSize" type="nonNegativeInteger32"/>
89
+ </xs:complexType>
90
+
91
+ <xs:simpleType name="DatasetSubclassType">
92
+ <xs:restriction base="xs:string">
93
+ <xs:enumeration value="VRTWarpedDataset"/>
94
+ <xs:enumeration value="VRTPansharpenedDataset"/>
95
+ <xs:enumeration value="VRTProcessedDataset">
96
+ <xs:annotation>
97
+ <xs:documentation>Added in GDAL 3.9</xs:documentation>
98
+ </xs:annotation>
99
+ </xs:enumeration>
100
+ </xs:restriction>
101
+ </xs:simpleType>
102
+
57
103
  <xs:complexType name="OverviewListType">
58
104
  <xs:simpleContent>
59
105
  <xs:extension base="integerList">
@@ -158,6 +204,51 @@
158
204
  </xs:sequence>
159
205
  </xs:complexType>
160
206
 
207
+ <xs:complexType name="InputType">
208
+ <xs:sequence>
209
+ <xs:choice minOccurs="0" maxOccurs="1">
210
+ <xs:element name="SourceFilename" type="SourceFilenameType"/>
211
+ <xs:element name="VRTDataset" type="VRTDatasetType"/>
212
+ </xs:choice>
213
+ </xs:sequence>
214
+ </xs:complexType>
215
+
216
+ <xs:complexType name="ProcessingStepsType">
217
+ <xs:sequence minOccurs="1" maxOccurs="unbounded">
218
+ <xs:element name="Step" type="ProcessingStepType"/>
219
+ </xs:sequence>
220
+ </xs:complexType>
221
+
222
+ <xs:complexType name="ProcessingStepType">
223
+ <xs:annotation>
224
+ <xs:documentation>Processing step of a VRTPansharpenedDataset</xs:documentation>
225
+ </xs:annotation>
226
+ <xs:sequence>
227
+ <xs:element name="Algorithm" type="xs:string" minOccurs="1">
228
+ <xs:annotation>
229
+ <xs:documentation>Builtin allowed names are BandAffineCombination, LUT, LocalScaleOffset, Trimming. More algorithms can be registered at run-time.</xs:documentation>
230
+ </xs:annotation>
231
+ </xs:element>
232
+ <xs:element name="Argument" type="ArgumentType" maxOccurs="unbounded"/>
233
+ </xs:sequence>
234
+ <xs:attribute name="name" type="xs:string"/>
235
+ </xs:complexType>
236
+
237
+ <xs:complexType name="ArgumentType">
238
+ <xs:annotation>
239
+ <xs:documentation>Argument of a processing function</xs:documentation>
240
+ </xs:annotation>
241
+ <xs:simpleContent>
242
+ <xs:extension base="xs:string">
243
+ <xs:attribute name="name" type="xs:string" use="required">
244
+ <xs:annotation>
245
+ <xs:documentation>Allowed names are specific of each processing function</xs:documentation>
246
+ </xs:annotation>
247
+ </xs:attribute>
248
+ </xs:extension>
249
+ </xs:simpleContent>
250
+ </xs:complexType>
251
+
161
252
  <xs:complexType name="MDIType">
162
253
  <xs:simpleContent>
163
254
  <xs:extension base="xs:string">
@@ -189,6 +280,7 @@
189
280
  <xs:element name="SimpleSource" type="SimpleSourceType"/>
190
281
  <xs:element name="ComplexSource" type="ComplexSourceType"/>
191
282
  <xs:element name="AveragedSource" type="SimpleSourceType"/>
283
+ <xs:element name="NoDataFromMaskSource" type="NoDataFromMaskSourceType"/>
192
284
  <xs:element name="KernelFilteredSource" type="KernelFilteredSourceType"/>
193
285
  <xs:element name="ArraySource" type="ArraySourceType"/>
194
286
 
@@ -233,6 +325,7 @@
233
325
  <xs:enumeration value="VRTDerivedRasterBand"/>
234
326
  <xs:enumeration value="VRTRawRasterBand"/>
235
327
  <xs:enumeration value="VRTPansharpenedRasterBand"/>
328
+ <xs:enumeration value="VRTProcessedRasterBand"/>
236
329
  </xs:restriction>
237
330
  </xs:simpleType>
238
331
 
@@ -408,6 +501,21 @@
408
501
  <xs:attribute name="resampling" type="xs:string"/>
409
502
  </xs:complexType>
410
503
 
504
+ <xs:group name="NoDataFromMaskSourceElementsGroup">
505
+ <xs:sequence>
506
+ <xs:choice minOccurs="0" maxOccurs="unbounded">
507
+ <xs:group ref="SimpleSourceElementsGroup"/>
508
+ <xs:element name="NODATA" type="DoubleOrNanType"/> <!-- NODATA and UseMaskBand are mutually exclusive -->
509
+ <xs:element name="MaskValueThreshold" type="xs:double"/>
510
+ <xs:element name="RemappedValue" type="xs:double"/>
511
+ </xs:choice>
512
+ </xs:sequence>
513
+ </xs:group>
514
+
515
+ <xs:complexType name="NoDataFromMaskSourceType">
516
+ <xs:group ref="NoDataFromMaskSourceElementsGroup"/>
517
+ </xs:complexType>
518
+
411
519
  <xs:complexType name="KernelFilteredSourceType">
412
520
  <xs:sequence>
413
521
  <xs:choice minOccurs="0" maxOccurs="unbounded">
@@ -212,6 +212,17 @@
212
212
  "maxItems": 4
213
213
  }
214
214
  },
215
+ "extent3D": {
216
+ "type": "array",
217
+ "items": {
218
+ "type": [
219
+ "null",
220
+ "number"
221
+ ],
222
+ "minItems": 6,
223
+ "maxItems": 6
224
+ }
225
+ },
215
226
  "coordinateSystem": {
216
227
  "oneOf": [
217
228
  {
@@ -254,6 +265,18 @@
254
265
  }
255
266
  ]
256
267
  }
268
+ },
269
+ "xyCoordinateResolution": {
270
+ "type": "number"
271
+ },
272
+ "zCoordinateResolution": {
273
+ "type": "number"
274
+ },
275
+ "mCoordinateResolution": {
276
+ "type": "number"
277
+ },
278
+ "coordinatePrecisionFormatSpecificOptions": {
279
+ "type": "object"
257
280
  }
258
281
  },
259
282
  "required": [
@@ -393,6 +393,9 @@
393
393
  <xs:element name="SrcRegion" type="SrcRegionType"/>
394
394
  <xs:element name="SRS" type="nonEmptyStringType"/>
395
395
  <xs:group ref="ExtentType"/>
396
+ <xs:element name="XYResolution" type="xs:double" minOccurs="0" maxOccurs="1"/>
397
+ <xs:element name="ZResolution" type="xs:double" minOccurs="0" maxOccurs="1"/>
398
+ <xs:element name="MResolution" type="xs:double" minOccurs="0" maxOccurs="1"/>
396
399
  </xs:choice>
397
400
  </xs:sequence>
398
401
  <xs:attributeGroup ref="GeometryFieldTypeAttrGroupWithoutSrc"/>