This is an automated email from the ASF dual-hosted git repository. jiayu pushed a commit to branch fix/issue-2678-phase13 in repository https://gitbox.apache.org/repos/asf/sedona.git
commit 9205e53e57e92154993fe42996afe0678c24188a Author: Jia Yu <[email protected]> AuthorDate: Fri Mar 6 16:23:02 2026 -0800 [DOCS] Add SVG visuals for raster affine transformation functions (Phase 13) --- docs/api/sql/Raster-Accessors/RS_GeoReference.md | 2 ++ .../sql/Raster-Accessors/RS_RasterToWorldCoordX.md | 2 ++ .../sql/Raster-Accessors/RS_RasterToWorldCoordY.md | 2 ++ docs/api/sql/Raster-Accessors/RS_Rotation.md | 2 ++ docs/api/sql/Raster-Accessors/RS_ScaleX.md | 2 ++ docs/api/sql/Raster-Accessors/RS_ScaleY.md | 2 ++ docs/api/sql/Raster-Accessors/RS_SkewX.md | 2 ++ docs/api/sql/Raster-Accessors/RS_SkewY.md | 2 ++ docs/api/sql/Raster-Accessors/RS_UpperLeftX.md | 2 ++ docs/api/sql/Raster-Accessors/RS_UpperLeftY.md | 2 ++ .../sql/Raster-Accessors/RS_WorldToRasterCoordX.md | 2 ++ .../sql/Raster-Accessors/RS_WorldToRasterCoordY.md | 2 ++ docs/api/sql/Raster-Operators/RS_SetGeoReference.md | 2 ++ docs/api/sql/Raster-affine-transformation.md | 2 ++ docs/image/RS_GeoReference/RS_GeoReference.svg | 12 ++++++++++++ .../RS_RasterToWorldCoordX.svg | 11 +++++++++++ .../RS_RasterToWorldCoordY.svg | 11 +++++++++++ docs/image/RS_Rotation/RS_Rotation.svg | 11 +++++++++++ docs/image/RS_ScaleX/RS_ScaleX.svg | 14 ++++++++++++++ docs/image/RS_ScaleY/RS_ScaleY.svg | 14 ++++++++++++++ docs/image/RS_SetGeoReference/RS_SetGeoReference.svg | 13 +++++++++++++ docs/image/RS_SkewX/RS_SkewX.svg | 17 +++++++++++++++++ docs/image/RS_SkewY/RS_SkewY.svg | 17 +++++++++++++++++ docs/image/RS_UpperLeftX/RS_UpperLeftX.svg | 12 ++++++++++++ docs/image/RS_UpperLeftY/RS_UpperLeftY.svg | 12 ++++++++++++ .../RS_WorldToRasterCoordX.svg | 12 ++++++++++++ .../RS_WorldToRasterCoordY.svg | 13 +++++++++++++ .../Raster_Affine_Transformation.svg | 20 ++++++++++++++++++++ 28 files changed, 217 insertions(+) diff --git a/docs/api/sql/Raster-Accessors/RS_GeoReference.md b/docs/api/sql/Raster-Accessors/RS_GeoReference.md index bc289b689b..1fdea026c8 100644 --- a/docs/api/sql/Raster-Accessors/RS_GeoReference.md +++ b/docs/api/sql/Raster-Accessors/RS_GeoReference.md @@ -46,6 +46,8 @@ For more information about ScaleX, ScaleY, SkewX, SkewY, please refer to the [Af The `sample()` function is only there to reduce the data sent to `collect()`, you may also use `filter()` if that's appropriate. + + Format: `RS_GeoReference(raster: Raster, format: String = "GDAL")` Return type: `String` diff --git a/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordX.md b/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordX.md index a6efc4cd6d..4c718e6ba0 100644 --- a/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordX.md +++ b/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordX.md @@ -21,6 +21,8 @@ Introduction: Returns the upper left X coordinate of the given row and column of the given raster geometric units of the geo-referenced raster. If any out of bounds values are given, the X coordinate of the assumed point considering existing raster pixel size and skew values will be returned. + + Format: `RS_RasterToWorldCoordX(raster: Raster, colX: Integer, rowY: Integer)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordY.md b/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordY.md index 3ffc4fb874..47483fcfc3 100644 --- a/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordY.md +++ b/docs/api/sql/Raster-Accessors/RS_RasterToWorldCoordY.md @@ -21,6 +21,8 @@ Introduction: Returns the upper left Y coordinate of the given row and column of the given raster geometric units of the geo-referenced raster. If any out of bounds values are given, the Y coordinate of the assumed point considering existing raster pixel size and skew values will be returned. + + Format: `RS_RasterToWorldCoordY(raster: Raster, colX: Integer, rowY: Integer)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_Rotation.md b/docs/api/sql/Raster-Accessors/RS_Rotation.md index f6d46d2484..fee0ba5442 100644 --- a/docs/api/sql/Raster-Accessors/RS_Rotation.md +++ b/docs/api/sql/Raster-Accessors/RS_Rotation.md @@ -21,6 +21,8 @@ Introduction: Returns the uniform rotation of the raster in radian. + + Format: `RS_Rotation(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_ScaleX.md b/docs/api/sql/Raster-Accessors/RS_ScaleX.md index 1526037903..5eedfb0105 100644 --- a/docs/api/sql/Raster-Accessors/RS_ScaleX.md +++ b/docs/api/sql/Raster-Accessors/RS_ScaleX.md @@ -29,6 +29,8 @@ Introduction: Returns the pixel width of the raster in CRS units. For more information about ScaleX, ScaleY, SkewX, SkewY, please refer to the [Affine Transformations](../Raster-affine-transformation.md) section. + + Format: `RS_ScaleX(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_ScaleY.md b/docs/api/sql/Raster-Accessors/RS_ScaleY.md index c7db3b03b3..66df1f7117 100644 --- a/docs/api/sql/Raster-Accessors/RS_ScaleY.md +++ b/docs/api/sql/Raster-Accessors/RS_ScaleY.md @@ -29,6 +29,8 @@ Introduction: Returns the pixel height of the raster in CRS units. For more information about ScaleX, ScaleY, SkewX, SkewY, please refer to the [Affine Transformations](../Raster-affine-transformation.md) section. + + Format: `RS_ScaleY(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_SkewX.md b/docs/api/sql/Raster-Accessors/RS_SkewX.md index 6449a453b3..fb5524fb50 100644 --- a/docs/api/sql/Raster-Accessors/RS_SkewX.md +++ b/docs/api/sql/Raster-Accessors/RS_SkewX.md @@ -21,6 +21,8 @@ Introduction: Returns the X skew or rotation parameter. + + Format: `RS_SkewX(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_SkewY.md b/docs/api/sql/Raster-Accessors/RS_SkewY.md index dc93548820..142718903f 100644 --- a/docs/api/sql/Raster-Accessors/RS_SkewY.md +++ b/docs/api/sql/Raster-Accessors/RS_SkewY.md @@ -21,6 +21,8 @@ Introduction: Returns the Y skew or rotation parameter. + + Format: `RS_SkewY(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_UpperLeftX.md b/docs/api/sql/Raster-Accessors/RS_UpperLeftX.md index 273782de4d..35796777da 100644 --- a/docs/api/sql/Raster-Accessors/RS_UpperLeftX.md +++ b/docs/api/sql/Raster-Accessors/RS_UpperLeftX.md @@ -21,6 +21,8 @@ Introduction: Returns the X coordinate of the upper-left corner of the raster. + + Format: `RS_UpperLeftX(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_UpperLeftY.md b/docs/api/sql/Raster-Accessors/RS_UpperLeftY.md index 9f963ebe07..2c836f1f41 100644 --- a/docs/api/sql/Raster-Accessors/RS_UpperLeftY.md +++ b/docs/api/sql/Raster-Accessors/RS_UpperLeftY.md @@ -21,6 +21,8 @@ Introduction: Returns the Y coordinate of the upper-left corner of the raster. + + Format: `RS_UpperLeftY(raster: Raster)` Return type: `Double` diff --git a/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordX.md b/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordX.md index 10840dc4aa..0186ce4dd4 100644 --- a/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordX.md +++ b/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordX.md @@ -21,6 +21,8 @@ Introduction: Returns the X coordinate of the grid coordinate of the given world coordinates as an integer. + + Format: `RS_WorldToRasterCoord(raster: Raster, point: Geometry)` diff --git a/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordY.md b/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordY.md index 69fa2f22fe..2aa488d9c2 100644 --- a/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordY.md +++ b/docs/api/sql/Raster-Accessors/RS_WorldToRasterCoordY.md @@ -21,6 +21,8 @@ Introduction: Returns the Y coordinate of the grid coordinate of the given world coordinates as an integer. + + Format: `RS_WorldToRasterCoordY(raster: Raster, point: Geometry)` diff --git a/docs/api/sql/Raster-Operators/RS_SetGeoReference.md b/docs/api/sql/Raster-Operators/RS_SetGeoReference.md index ba01020958..ad61c91bd3 100644 --- a/docs/api/sql/Raster-Operators/RS_SetGeoReference.md +++ b/docs/api/sql/Raster-Operators/RS_SetGeoReference.md @@ -24,6 +24,8 @@ Default format is `GDAL`. If all 6 parameters are not provided then will return For more information about ScaleX, ScaleY, SkewX, SkewY, please refer to the [Affine Transformations](../Raster-affine-transformation.md) section. + + Format: ``` diff --git a/docs/api/sql/Raster-affine-transformation.md b/docs/api/sql/Raster-affine-transformation.md index bb6d79c244..a15b56fe8d 100644 --- a/docs/api/sql/Raster-affine-transformation.md +++ b/docs/api/sql/Raster-affine-transformation.md @@ -19,6 +19,8 @@ This page explains the basic concepts of Affine Transformation in Sedona Raster. + + ## Affine Transformations Affine transformations are a fundamental concept in computer graphics, geometry, and image processing that involve manipulating an object in a way that preserves lines and parallelism (but not necessarily distances and angles). These transformations are linear transformations followed by a translation, which means they can translate, scale, rotate, and shear objects without altering the relative arrangement of points, lines, or planes. diff --git a/docs/image/RS_GeoReference/RS_GeoReference.svg b/docs/image/RS_GeoReference/RS_GeoReference.svg new file mode 100644 index 0000000000..d28500c204 --- /dev/null +++ b/docs/image/RS_GeoReference/RS_GeoReference.svg @@ -0,0 +1,12 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="780" height="420" viewBox="0 0 780 420" font-family="Arial, Helvetica, sans-serif"> +<rect width="780" height="420" fill="white"/> +<text x="390" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_GeoReference</text><text x="390" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns georeference metadata as a string (GDAL or ESRI format)</text><polygon points="60.0,90.0 300.0,114.0 330.0,279.0 90.0,255.0" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5" opacity="1.0"/> +<line x1="120.0" y1="96.0" x2="150.0" y2="261.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="180.0" y1="102.0" x2="210.0" y2="267.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="240.0" y1="108.0" x2="270.0" y2="273.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="70.0" y1="145.0" x2="310.0" y2="169.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="80.0" y1="200.0" x2="320.0" y2="224.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/><circle cx="60" cy="90" r="4" fill="#FF8F00"/><text x="55" y="80" text-anchor="end" font-size="10" fill="#FF8F00" font-weight="bold" font-style="normal">Origin</text><line x1="60" y1="75" x2="120" y2="75" stroke="#1565C0" stroke-width="1.5"/> +<polygon points="120,75 115.8,77.7 115.8,72.3" fill="#1565C0"/> +<polygon points="60,75 64.2,72.3 64.2,77.7" fill="#1565C0"/><text x="90.0" y="67" text-anchor="middle" font-size="10" fill="#1565C0" font-weight="bold" font-style="normal">ScaleX</text><line x1="45" y1="90" x2="45" y2="145" stroke="#1565C0" stroke-width="1.5"/> +<polygon points="45,145 42.3,140.8 47.7,140.8" fill="#1565C0"/> +<polygon points="45,90 47.7,94.2 42.3,94.2" fill="#1565C0"/><text x="40" y="117.5" text-anchor="end" font-size="10" fill="#1565C0" font-weight="bold" font-style="normal">ScaleY</text><text x="470" y="85" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">GDAL Format (default)</text><rect x="380" y="95" width="195" height="160" fill="#F5F5F5" stroke="#666" stroke-width="1" rx="4"/><text x="395" y="117" text-anchor="start" font-size="13" fill="#1565C0" f [...] \ No newline at end of file diff --git a/docs/image/RS_RasterToWorldCoordX/RS_RasterToWorldCoordX.svg b/docs/image/RS_RasterToWorldCoordX/RS_RasterToWorldCoordX.svg new file mode 100644 index 0000000000..fc36d32f8d --- /dev/null +++ b/docs/image/RS_RasterToWorldCoordX/RS_RasterToWorldCoordX.svg @@ -0,0 +1,11 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="620" height="360" viewBox="0 0 620 360" font-family="Arial, Helvetica, sans-serif"> +<rect width="620" height="360" fill="white"/> +<text x="310" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_RasterToWorldCoordX</text><text x="310" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the world X coordinate for a given grid column and row</text><rect x="60" y="80" width="275" height="180" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="115" y1="80" x2="115" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="170" y1="80" x2="170" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="225" y1="80" x2="225" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="280" y1="80" x2="280" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="125" x2="335" y2="125" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="170" x2="335" y2="170" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="215" x2="335" y2="215" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><text x="87.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">1</text><text x="142.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">2</text><text x="197.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">3</text><text x="252.5" y="74" text-anchor="middle" fon [...] +<polygon points="390,150 383.0,153.9 383.5,145.3" fill="#333"/><rect x="400" y="110" width="200" height="100" fill="#F5F5F5" stroke="#666" stroke-width="1" rx="6"/><text x="500" y="135" text-anchor="middle" font-size="12" fill="#333" font-weight="bold" font-style="normal">World Coordinate</text><text x="500" y="162" text-anchor="middle" font-size="16" fill="#D32F2F" font-weight="bold" font-style="normal">X = -113</text><text x="500" y="185" text-anchor="middle" font-size="10" fill="#666" [...] \ No newline at end of file diff --git a/docs/image/RS_RasterToWorldCoordY/RS_RasterToWorldCoordY.svg b/docs/image/RS_RasterToWorldCoordY/RS_RasterToWorldCoordY.svg new file mode 100644 index 0000000000..cefa8fa58b --- /dev/null +++ b/docs/image/RS_RasterToWorldCoordY/RS_RasterToWorldCoordY.svg @@ -0,0 +1,11 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="620" height="360" viewBox="0 0 620 360" font-family="Arial, Helvetica, sans-serif"> +<rect width="620" height="360" fill="white"/> +<text x="310" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_RasterToWorldCoordY</text><text x="310" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the world Y coordinate for a given grid column and row</text><rect x="60" y="80" width="275" height="180" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="115" y1="80" x2="115" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="170" y1="80" x2="170" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="225" y1="80" x2="225" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="280" y1="80" x2="280" y2="260" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="125" x2="335" y2="125" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="170" x2="335" y2="170" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="215" x2="335" y2="215" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><text x="87.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">1</text><text x="142.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">2</text><text x="197.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">3</text><text x="252.5" y="74" text-anchor="middle" fon [...] +<polygon points="390,150 388.0,157.8 382.1,151.5" fill="#333"/><rect x="400" y="110" width="200" height="100" fill="#F5F5F5" stroke="#666" stroke-width="1" rx="6"/><text x="500" y="135" text-anchor="middle" font-size="12" fill="#333" font-weight="bold" font-style="normal">World Coordinate</text><text x="500" y="162" text-anchor="middle" font-size="16" fill="#D32F2F" font-weight="bold" font-style="normal">Y = 34</text><text x="500" y="185" text-anchor="middle" font-size="10" fill="#666" f [...] \ No newline at end of file diff --git a/docs/image/RS_Rotation/RS_Rotation.svg b/docs/image/RS_Rotation/RS_Rotation.svg new file mode 100644 index 0000000000..b337a085de --- /dev/null +++ b/docs/image/RS_Rotation/RS_Rotation.svg @@ -0,0 +1,11 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="620" height="380" viewBox="0 0 620 380" font-family="Arial, Helvetica, sans-serif"> +<rect width="620" height="380" fill="white"/> +<text x="310" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_Rotation</text><text x="310" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the uniform rotation of the raster in radians</text><line x1="200" y1="300" x2="550" y2="300" stroke="#333" stroke-width="1.5"/> +<polygon points="550,300 543.2,304.3 543.2,295.7" fill="#333"/><line x1="200" y1="300" x2="200" y2="65" stroke="#333" stroke-width="1.5"/> +<polygon points="200,65 204.3,71.8 195.7,71.8" fill="#333"/><text x="555" y="305" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">X</text><text x="188" y="60" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">Y</text><polygon points="230.0,240.0 429.4,147.0 499.1,296.6 299.7,389.5" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5" opacity="1.0"/> +<line x1="279.8" y1="216.8" x2="349.6" y2="366.3" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="329.7" y1="193.5" x2="399.4" y2="343.1" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="379.5" y1="170.3" x2="449.3" y2="319.8" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="253.2" y1="289.8" x2="452.6" y2="196.9" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="276.5" y1="339.7" x2="475.9" y2="246.7" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/><circle cx="230" cy="240" r="5" fill="#FF8F00" stroke="white" stroke-width="1.5"/><path d="M 290.0 240.0 A 60 60 0 0 1 284.4 265.4" fill="none" stroke="#D32F2F" stroke-width="2"/><line x1="286.378467222199" y1="263.357095704442" x2="284.378467222199" y2="265.357095704442" stroke="#D32F2F" stroke-width="0.5"/> +<polygon points="284.378467222199,265.357095704442 285.7,259.5 290.2,264.0" fill="#D32F2F"/><line x1="230" y1="240" x2="310" y2="240" stroke="#666" stroke-width="1.2" stroke-dasharray="5,3"/><text x="306.1510885553548" y="256.882289887172" text-anchor="middle" font-size="16" fill="#D32F2F" font-weight="bold" font-style="italic">θ</text><rect x="380" y="100" width="200" height="65" fill="#F5F5F5" stroke="#666" stroke-width="1" rx="6"/><text x="480" y="122" text-anchor="middle" font-size=" [...] \ No newline at end of file diff --git a/docs/image/RS_ScaleX/RS_ScaleX.svg b/docs/image/RS_ScaleX/RS_ScaleX.svg new file mode 100644 index 0000000000..3558b8c9ea --- /dev/null +++ b/docs/image/RS_ScaleX/RS_ScaleX.svg @@ -0,0 +1,14 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="580" height="320" viewBox="0 0 580 320" font-family="Arial, Helvetica, sans-serif"> +<rect width="580" height="320" fill="white"/> +<text x="290" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_ScaleX</text><text x="290" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the pixel width of the raster in CRS units</text><rect x="90" y="80" width="350" height="200" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="160" y1="80" x2="160" y2="280" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="230" y1="80" x2="230" y2="280" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="300" y1="80" x2="300" y2="280" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="370" y1="80" x2="370" y2="280" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="90" y1="130" x2="440" y2="130" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="90" y1="180" x2="440" y2="180" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="90" y1="230" x2="440" y2="230" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><line x1="90" y1="300" x2="160" y2="300" stroke="#D32F2F" stroke-width="2.2"/> +<polygon points="160,300 154.1,303.8 154.1,296.2" fill="#D32F2F"/> +<polygon points="90,300 95.9,296.2 95.9,303.8" fill="#D32F2F"/><text x="125.0" y="322" text-anchor="middle" font-size="12" fill="#D32F2F" font-weight="bold" font-style="normal">ScaleX = pixel width</text><text x="125.0" y="340" text-anchor="middle" font-size="10" fill="#666" font-weight="normal" font-style="normal">(in CRS units, e.g., degrees or meters)</text><line x1="90" y1="355" x2="440" y2="355" stroke="#1565C0" stroke-width="1.5"/> +<polygon points="440,355 434.1,358.8 434.1,351.2" fill="#1565C0"/> +<polygon points="90,355 95.9,351.2 95.9,358.8" fill="#1565C0"/><text x="265.0" y="373" text-anchor="middle" font-size="11" fill="#1565C0" font-weight="normal" font-style="normal">Width × ScaleX = 5 × ScaleX</text><line x1="90" y1="80" x2="90" y2="295" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><line x1="160" y1="80" x2="160" y2="295" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><text x="125.0" y="109.0" text-anchor="middle" font-size="10" fill="#1565C0" font-w [...] \ No newline at end of file diff --git a/docs/image/RS_ScaleY/RS_ScaleY.svg b/docs/image/RS_ScaleY/RS_ScaleY.svg new file mode 100644 index 0000000000..2c8d83731d --- /dev/null +++ b/docs/image/RS_ScaleY/RS_ScaleY.svg @@ -0,0 +1,14 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="580" height="340" viewBox="0 0 580 340" font-family="Arial, Helvetica, sans-serif"> +<rect width="580" height="340" fill="white"/> +<text x="290" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_ScaleY</text><text x="290" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the pixel height of the raster in CRS units</text><rect x="140" y="75" width="240" height="225" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="200" y1="75" x2="200" y2="300" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="260" y1="75" x2="260" y2="300" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="320" y1="75" x2="320" y2="300" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="140" y1="120" x2="380" y2="120" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="140" y1="165" x2="380" y2="165" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="140" y1="210" x2="380" y2="210" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="140" y1="255" x2="380" y2="255" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><line x1="400" y1="75" x2="400" y2="120" stroke="#D32F2F" stroke-width="2.2"/> +<polygon points="400,120 396.2,114.1 403.8,114.1" fill="#D32F2F"/> +<polygon points="400,75 403.8,80.9 396.2,80.9" fill="#D32F2F"/><text x="410" y="101.5" text-anchor="start" font-size="12" fill="#D32F2F" font-weight="bold" font-style="normal">ScaleY</text><line x1="380" y1="75" x2="395" y2="75" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><line x1="380" y1="120" x2="395" y2="120" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><line x1="480" y1="75" x2="480" y2="300" stroke="#1565C0" stroke-width="1.5"/> +<polygon points="480,300 476.2,294.1 483.8,294.1" fill="#1565C0"/> +<polygon points="480,75 483.8,80.9 476.2,80.9" fill="#1565C0"/><text x="490" y="191.5" text-anchor="start" font-size="11" fill="#1565C0" font-weight="normal" font-style="normal">5 × ScaleY</text><text x="170.0" y="101.5" text-anchor="middle" font-size="10" fill="#1565C0" font-weight="bold" font-style="normal">row 1</text><text x="170.0" y="146.5" text-anchor="middle" font-size="10" fill="#1565C0" font-weight="bold" font-style="normal">row 2</text><text x="170.0" y="191.5" text-anchor="mi [...] \ No newline at end of file diff --git a/docs/image/RS_SetGeoReference/RS_SetGeoReference.svg b/docs/image/RS_SetGeoReference/RS_SetGeoReference.svg new file mode 100644 index 0000000000..9ff2506c8f --- /dev/null +++ b/docs/image/RS_SetGeoReference/RS_SetGeoReference.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="800" height="380" viewBox="0 0 800 380" font-family="Arial, Helvetica, sans-serif"> +<rect width="800" height="380" fill="white"/> +<text x="400" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_SetGeoReference</text><text x="400" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Sets the georeference metadata of a raster</text><text x="125.0" y="80" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">Input Raster</text><rect x="50" y="90" width="150" height="150" fill="#E8EAF6" stroke="#5C [...] +<line x1="100" y1="90" x2="100" y2="240" stroke="#5C6BC0" stroke-width="0.8" opacity="0.5"/> +<line x1="150" y1="90" x2="150" y2="240" stroke="#5C6BC0" stroke-width="0.8" opacity="0.5"/> +<line x1="50" y1="140" x2="200" y2="140" stroke="#5C6BC0" stroke-width="0.8" opacity="0.5"/> +<line x1="50" y1="190" x2="200" y2="190" stroke="#5C6BC0" stroke-width="0.8" opacity="0.5"/><text x="50" y="260" text-anchor="start" font-size="10" fill="#666" font-weight="normal" font-style="normal">ScaleX=1, ScaleY=-1</text><text x="50" y="276" text-anchor="start" font-size="10" fill="#666" font-weight="normal" font-style="normal">SkewX=0, SkewY=0</text><text x="50" y="292" text-anchor="start" font-size="10" fill="#666" font-weight="normal" font-style="normal">Origin=(0, 0)</text><rec [...] +<polygon points="275,165 268.2,169.3 268.2,160.7" fill="#333"/><line x1="515" y1="165" x2="570" y2="165.0" stroke="#333" stroke-width="1.5"/> +<polygon points="570,165.0 563.2,169.3 563.2,160.7" fill="#333"/><text x="673.0" y="80" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">Result Raster</text><polygon points="580.0,90.0 730.0,120.0 766.0,270.0 616.0,240.0" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5" opacity="1.0"/> +<line x1="630.0" y1="100.0" x2="666.0" y2="250.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="680.0" y1="110.0" x2="716.0" y2="260.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="592.0" y1="140.0" x2="742.0" y2="170.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="604.0" y1="190.0" x2="754.0" y2="220.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/><text x="580" y="280" text-anchor="start" font-size="10" fill="#1565C0" font-weight="bold" font-style="normal">ScaleX=3, ScaleY=2</text><text x="580" y="296" text-anchor="start" font-size="10" fill="#00796B" font-weight="bold" font-style="normal">SkewX=1.5, SkewY=1.5</text><text x="580" y="312" text-anchor="start" font-size="10" fill="#FF8F00" font-weight="bold" font-style="normal">Origin [...] \ No newline at end of file diff --git a/docs/image/RS_SkewX/RS_SkewX.svg b/docs/image/RS_SkewX/RS_SkewX.svg new file mode 100644 index 0000000000..98707b0059 --- /dev/null +++ b/docs/image/RS_SkewX/RS_SkewX.svg @@ -0,0 +1,17 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="700" height="370" viewBox="0 0 700 370" font-family="Arial, Helvetica, sans-serif"> +<rect width="700" height="370" fill="white"/> +<text x="350" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_SkewX</text><text x="350" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">X skew: horizontal shift per row</text><text x="160.0" y="80" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">SkewX = 0</text><rect x="60" y="90" width="200" height="200" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="110" y1="90" x2="110" y2="290" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="160" y1="90" x2="160" y2="290" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="210" y1="90" x2="210" y2="290" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="140" x2="260" y2="140" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="190" x2="260" y2="190" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="240" x2="260" y2="240" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><text x="355" y="190.0" text-anchor="middle" font-size="28" fill="#333" font-weight="bold" font-style="normal">→</text><text x="530.0" y="80" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">SkewX = 0.1</text><polygon points="400.0,90.0 600.0,90.0 660.0,290.0 460.0,290.0" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5" opacity="1.0"/> +<line x1="450.0" y1="90.0" x2="510.0" y2="290.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="500.0" y1="90.0" x2="560.0" y2="290.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="550.0" y1="90.0" x2="610.0" y2="290.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="415.0" y1="140.0" x2="615.0" y2="140.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="430.0" y1="190.0" x2="630.0" y2="190.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="445.0" y1="240.0" x2="645.0" y2="240.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/><line x1="400" y1="140" x2="415" y2="140" stroke="#D32F2F" stroke-width="1.2" stroke-dasharray="4,3"/><line x1="400" y1="190" x2="430" y2="190" stroke="#D32F2F" stroke-width="1.2" stroke-dasharray="4,3"/><line x1="400" y1="240" x2="445" y2="240" stroke="#D32F2F" stroke-width="1.2" stroke-dasharray="4,3"/><line x1="400" y1="290" x2="460" y2="290" stroke="#D32F2F" stroke-width="1.2" stroke- [...] +<polygon points="460,315 454.1,318.8 454.1,311.2" fill="#D32F2F"/> +<polygon points="400,315 405.9,311.2 405.9,318.8" fill="#D32F2F"/><text x="430.0" y="335" text-anchor="middle" font-size="11" fill="#D32F2F" font-weight="bold" font-style="normal">SkewX × 4 rows</text><line x1="400" y1="290" x2="400" y2="310" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><line x1="460" y1="290" x2="460" y2="310" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><text x="350" y="355" text-anchor="middle" font-size="11" fill="#666" font-weight="normal" [...] \ No newline at end of file diff --git a/docs/image/RS_SkewY/RS_SkewY.svg b/docs/image/RS_SkewY/RS_SkewY.svg new file mode 100644 index 0000000000..5256e0ac01 --- /dev/null +++ b/docs/image/RS_SkewY/RS_SkewY.svg @@ -0,0 +1,17 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="700" height="370" viewBox="0 0 700 370" font-family="Arial, Helvetica, sans-serif"> +<rect width="700" height="370" fill="white"/> +<text x="350" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_SkewY</text><text x="350" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Y skew: vertical shift per column</text><text x="160.0" y="80" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">SkewY = 0</text><rect x="60" y="90" width="200" height="200" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="110" y1="90" x2="110" y2="290" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="160" y1="90" x2="160" y2="290" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="210" y1="90" x2="210" y2="290" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="140" x2="260" y2="140" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="190" x2="260" y2="190" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="60" y1="240" x2="260" y2="240" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><text x="355" y="190.0" text-anchor="middle" font-size="28" fill="#333" font-weight="bold" font-style="normal">→</text><text x="500.0" y="80" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">SkewY = 0.2</text><polygon points="400.0,90.0 600.0,138.0 600.0,338.0 400.0,290.0" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5" opacity="1.0"/> +<line x1="450.0" y1="102.0" x2="450.0" y2="302.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="500.0" y1="114.0" x2="500.0" y2="314.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="550.0" y1="126.0" x2="550.0" y2="326.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="400.0" y1="140.0" x2="600.0" y2="188.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="400.0" y1="190.0" x2="600.0" y2="238.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="400.0" y1="240.0" x2="600.0" y2="288.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/><line x1="620" y1="90" x2="620" y2="138" stroke="#D32F2F" stroke-width="2"/> +<polygon points="620,138 616.2,132.1 623.8,132.1" fill="#D32F2F"/> +<polygon points="620,90 623.8,95.9 616.2,95.9" fill="#D32F2F"/><text x="630" y="118.0" text-anchor="start" font-size="11" fill="#D32F2F" font-weight="bold" font-style="normal">SkewY × 4 cols</text><line x1="600" y1="90" x2="615" y2="90" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><line x1="600" y1="138" x2="615" y2="138" stroke="#D32F2F" stroke-width="1" stroke-dasharray="3,3"/><text x="350" y="355" text-anchor="middle" font-size="11" fill="#666" font-weight="normal" font-s [...] \ No newline at end of file diff --git a/docs/image/RS_UpperLeftX/RS_UpperLeftX.svg b/docs/image/RS_UpperLeftX/RS_UpperLeftX.svg new file mode 100644 index 0000000000..3b5b03143f --- /dev/null +++ b/docs/image/RS_UpperLeftX/RS_UpperLeftX.svg @@ -0,0 +1,12 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="580" height="320" viewBox="0 0 580 320" font-family="Arial, Helvetica, sans-serif"> +<rect width="580" height="320" fill="white"/> +<text x="290" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_UpperLeftX</text><text x="290" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the X coordinate of the upper-left corner</text><line x1="80" y1="260" x2="520" y2="260" stroke="#333" stroke-width="1.5"/> +<polygon points="520,260 513.2,264.3 513.2,255.7" fill="#333"/><line x1="80" y1="260" x2="80" y2="60" stroke="#333" stroke-width="1.5"/> +<polygon points="80,60 84.3,66.8 75.7,66.8" fill="#333"/><text x="525" y="265" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">X</text><text x="68" y="55" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">Y</text><rect x="200" y="100" width="240" height="135" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="260" y1="100" x2="260" y2="235" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="320" y1="100" x2="320" y2="235" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="380" y1="100" x2="380" y2="235" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="200" y1="145" x2="440" y2="145" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="200" y1="190" x2="440" y2="190" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><circle cx="200" cy="100" r="5" fill="#FF8F00" stroke="white" stroke-width="1.5"/><line x1="200" y1="100" x2="200" y2="260" stroke="#D32F2F" stroke-width="1.5" stroke-dasharray="5,3"/><line x1="80" y1="255" x2="200" y2="255" stroke="#D32F2F" stroke-width="2"/> +<polygon points="200,255 194.1,258.8 194.1,251.2" fill="#D32F2F"/> +<polygon points="80,255 85.9,251.2 85.9,258.8" fill="#D32F2F"/><text x="140.0" y="282" text-anchor="middle" font-size="13" fill="#D32F2F" font-weight="bold" font-style="normal">UpperLeftX</text><text x="192" y="88" text-anchor="start" font-size="11" fill="#FF8F00" font-weight="bold" font-style="normal">(UpperLeftX, UpperLeftY)</text></svg> \ No newline at end of file diff --git a/docs/image/RS_UpperLeftY/RS_UpperLeftY.svg b/docs/image/RS_UpperLeftY/RS_UpperLeftY.svg new file mode 100644 index 0000000000..a5859e26ac --- /dev/null +++ b/docs/image/RS_UpperLeftY/RS_UpperLeftY.svg @@ -0,0 +1,12 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="580" height="320" viewBox="0 0 580 320" font-family="Arial, Helvetica, sans-serif"> +<rect width="580" height="320" fill="white"/> +<text x="290" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_UpperLeftY</text><text x="290" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the Y coordinate of the upper-left corner</text><line x1="80" y1="260" x2="520" y2="260" stroke="#333" stroke-width="1.5"/> +<polygon points="520,260 513.2,264.3 513.2,255.7" fill="#333"/><line x1="80" y1="260" x2="80" y2="60" stroke="#333" stroke-width="1.5"/> +<polygon points="80,60 84.3,66.8 75.7,66.8" fill="#333"/><text x="525" y="265" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">X</text><text x="68" y="55" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">Y</text><rect x="200" y="100" width="240" height="135" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="260" y1="100" x2="260" y2="235" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="320" y1="100" x2="320" y2="235" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="380" y1="100" x2="380" y2="235" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="200" y1="145" x2="440" y2="145" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="200" y1="190" x2="440" y2="190" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><circle cx="200" cy="100" r="5" fill="#FF8F00" stroke="white" stroke-width="1.5"/><line x1="200" y1="100" x2="80" y2="100" stroke="#D32F2F" stroke-width="1.5" stroke-dasharray="5,3"/><line x1="85" y1="260" x2="85" y2="100" stroke="#D32F2F" stroke-width="2"/> +<polygon points="85,100 88.8,105.9 81.2,105.9" fill="#D32F2F"/> +<polygon points="85,260 81.2,254.1 88.8,254.1" fill="#D32F2F"/><text x="72" y="184.0" text-anchor="end" font-size="13" fill="#D32F2F" font-weight="bold" font-style="normal">UpperLeftY</text><text x="208" y="88" text-anchor="start" font-size="11" fill="#FF8F00" font-weight="bold" font-style="normal">(UpperLeftX, UpperLeftY)</text></svg> \ No newline at end of file diff --git a/docs/image/RS_WorldToRasterCoordX/RS_WorldToRasterCoordX.svg b/docs/image/RS_WorldToRasterCoordX/RS_WorldToRasterCoordX.svg new file mode 100644 index 0000000000..1ac04e0556 --- /dev/null +++ b/docs/image/RS_WorldToRasterCoordX/RS_WorldToRasterCoordX.svg @@ -0,0 +1,12 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="620" height="360" viewBox="0 0 620 360" font-family="Arial, Helvetica, sans-serif"> +<rect width="620" height="360" fill="white"/> +<text x="310" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_WorldToRasterCoordX</text><text x="310" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the grid column (X) for given world coordinates</text><rect x="40" y="100" width="180" height="90" fill="#FFF3E0" stroke="#FF8F00" stroke-width="1.5" rx="6"/><text x="130" y="125" text-anchor="middle" font-size="12" fill="#333" font-weig [...] +<polygon points="300,145 293.2,149.3 293.2,140.7" fill="#333"/><rect x="310" y="80" width="225" height="160" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="355" y1="80" x2="355" y2="240" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="400" y1="80" x2="400" y2="240" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="445" y1="80" x2="445" y2="240" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="490" y1="80" x2="490" y2="240" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="120" x2="535" y2="120" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="160" x2="535" y2="160" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="200" x2="535" y2="200" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><text x="332.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">1</text><text x="377.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">2</text><text x="422.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">3</text><text x="467.5" y="74" text-anchor="middle" f [...] +<polygon points="450,255 442.9,258.7 443.6,250.2" fill="#D32F2F"/></svg> \ No newline at end of file diff --git a/docs/image/RS_WorldToRasterCoordY/RS_WorldToRasterCoordY.svg b/docs/image/RS_WorldToRasterCoordY/RS_WorldToRasterCoordY.svg new file mode 100644 index 0000000000..fbcbd5d1c7 --- /dev/null +++ b/docs/image/RS_WorldToRasterCoordY/RS_WorldToRasterCoordY.svg @@ -0,0 +1,13 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="620" height="360" viewBox="0 0 620 360" font-family="Arial, Helvetica, sans-serif"> +<rect width="620" height="360" fill="white"/> +<text x="310" y="28" text-anchor="middle" font-size="17" fill="#333" font-weight="bold" font-style="normal">RS_WorldToRasterCoordY</text><text x="310" y="48" text-anchor="middle" font-size="12" fill="#666" font-weight="normal" font-style="normal">Returns the grid row (Y) for given world coordinates</text><rect x="40" y="100" width="180" height="90" fill="#FFF3E0" stroke="#FF8F00" stroke-width="1.5" rx="6"/><text x="130" y="125" text-anchor="middle" font-size="12" fill="#333" font-weight= [...] +<polygon points="300,145 293.2,149.3 293.2,140.7" fill="#333"/><rect x="310" y="80" width="225" height="190" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5"/> +<line x1="355" y1="80" x2="355" y2="270" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="400" y1="80" x2="400" y2="270" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="445" y1="80" x2="445" y2="270" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="490" y1="80" x2="490" y2="270" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="118" x2="535" y2="118" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="156" x2="535" y2="156" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="194" x2="535" y2="194" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/> +<line x1="310" y1="232" x2="535" y2="232" stroke="#1565C0" stroke-width="0.8" opacity="0.5"/><text x="332.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">1</text><text x="377.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">2</text><text x="422.5" y="74" text-anchor="middle" font-size="11" fill="#333" font-weight="bold" font-style="normal">3</text><text x="467.5" y="74" text-anchor="middle" f [...] +<polygon points="450,285 449.8,277.0 457.2,281.5" fill="#D32F2F"/></svg> \ No newline at end of file diff --git a/docs/image/Raster_Affine_Transformation/Raster_Affine_Transformation.svg b/docs/image/Raster_Affine_Transformation/Raster_Affine_Transformation.svg new file mode 100644 index 0000000000..11e2a05d57 --- /dev/null +++ b/docs/image/Raster_Affine_Transformation/Raster_Affine_Transformation.svg @@ -0,0 +1,20 @@ +<svg xmlns="http://www.w3.org/2000/svg" width="900" height="500" viewBox="0 0 900 500" font-family="Arial, Helvetica, sans-serif"> +<rect width="900" height="500" fill="white"/> +<text x="450" y="28" text-anchor="middle" font-size="18" fill="#333" font-weight="bold" font-style="normal">Raster Affine Transformation</text><text x="200" y="80" text-anchor="middle" font-size="14" fill="#333" font-weight="bold" font-style="normal">Affine Matrix</text><rect x="90" y="92" width="250" height="80" fill="#F5F5F5" stroke="#666" stroke-width="1" rx="4"/><text x="135" y="120" text-anchor="middle" font-size="13" fill="#1565C0" font-weight="bold" font-style="normal">ScaleX</tex [...] +<polygon points="860,420 853.2,424.3 853.2,415.7" fill="#333"/><line x1="500" y1="420" x2="500" y2="70" stroke="#333" stroke-width="1.5"/> +<polygon points="500,70 504.3,76.8 495.7,76.8" fill="#333"/><text x="865" y="425" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">X</text><text x="488" y="68" text-anchor="middle" font-size="13" fill="#333" font-weight="bold" font-style="normal">Y</text><polygon points="540.0,140.0 790.0,180.0 850.0,380.0 600.0,340.0" fill="#E3F2FD" stroke="#1565C0" stroke-width="1.5" opacity="1.0"/> +<line x1="590.0" y1="148.0" x2="650.0" y2="348.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="640.0" y1="156.0" x2="700.0" y2="356.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="690.0" y1="164.0" x2="750.0" y2="364.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="740.0" y1="172.0" x2="800.0" y2="372.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="555.0" y1="190.0" x2="805.0" y2="230.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="570.0" y1="240.0" x2="820.0" y2="280.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/> +<line x1="585.0" y1="290.0" x2="835.0" y2="330.0" stroke="#1565C0" stroke-width="0.8" opacity="0.4"/><circle cx="540" cy="140" r="5" fill="#FF8F00" stroke="#FF8F00"/><line x1="540" y1="140" x2="540" y2="420" stroke="#FF8F00" stroke-width="1.2" stroke-dasharray="4,3"/><line x1="540" y1="140" x2="500" y2="140" stroke="#FF8F00" stroke-width="1.2" stroke-dasharray="4,3"/><text x="540" y="438" text-anchor="middle" font-size="11" fill="#FF8F00" font-weight="bold" font-style="normal">UpperLeftX [...] +<polygon points="590,122 584.1,125.8 584.1,118.2" fill="#1565C0"/> +<polygon points="540,122 545.9,118.2 545.9,125.8" fill="#1565C0"/><text x="565.0" y="114" text-anchor="middle" font-size="12" fill="#1565C0" font-weight="bold" font-style="normal">ScaleX</text><line x1="522" y1="140" x2="522" y2="190" stroke="#1565C0" stroke-width="2"/> +<polygon points="522,190 518.2,184.1 525.8,184.1" fill="#1565C0"/> +<polygon points="522,140 525.8,145.9 518.2,145.9" fill="#1565C0"/><text x="514" y="169.0" text-anchor="end" font-size="12" fill="#1565C0" font-weight="bold" font-style="normal">ScaleY</text><line x1="540" y1="140" x2="540" y2="190" stroke="#00796B" stroke-width="1" stroke-dasharray="4,3" opacity="0.6"/><line x1="540" y1="208" x2="555" y2="208" stroke="#00796B" stroke-width="1.8"/> +<polygon points="555,208 549.1,211.8 549.1,204.2" fill="#00796B"/> +<polygon points="540,208 545.9,204.2 545.9,211.8" fill="#00796B"/><text x="547.5" y="224" text-anchor="middle" font-size="11" fill="#00796B" font-weight="bold" font-style="normal">SkewX</text><line x1="540" y1="140" x2="590" y2="140" stroke="#00796B" stroke-width="1" stroke-dasharray="4,3" opacity="0.6"/><line x1="608" y1="140" x2="608" y2="148" stroke="#00796B" stroke-width="1.8"/> +<polygon points="608,148 604.2,142.1 611.8,142.1" fill="#00796B"/> +<polygon points="608,140 611.8,145.9 604.2,145.9" fill="#00796B"/><text x="616" y="148.0" text-anchor="start" font-size="11" fill="#00796B" font-weight="bold" font-style="normal">SkewY</text><rect x="50" y="438" width="12" height="12" fill="#1565C0" rx="2"/><text x="70" y="450" text-anchor="start" font-size="11" fill="#333" font-weight="normal" font-style="normal">Scale (pixel size)</text><rect x="200" y="438" width="12" height="12" fill="#00796B" rx="2"/><text x="220" y="450" text-ancho [...] \ No newline at end of file
