<mxfile host="65bd71144e" scale="3" border="0">
    <diagram id="jg8xuhenh03KdPF_DZof" name="Page-1">
        <mxGraphModel dx="1020" dy="497" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="850" pageHeight="1100" background="none" math="0" shadow="0">
            <root>
                <mxCell id="0"/>
                <mxCell id="1" parent="0"/>
                <mxCell id="86" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;rounded=0;endSize=14;startSize=6;endArrow=diamondThin;endFill=1;fontColor=default;" edge="1" parent="1" source="91" target="13">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="144" y="476.89" as="sourcePoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="12" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;MNSDownloader&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ base_url : str&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ capabilities_url : str&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ crs : str&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ transform_context&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ get_layer_candidates(point, is_mns) : dict[]&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ validate_raster_content(path) : bool&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ download_dual_quality_mns (trail_extent, high_res, low_res, crs) : bool&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ read_tif(extent, resolution, output_path, crs, is_mns) : bool&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;&quot;&gt;- _fetch_capabilities(): xml.etree&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;- _download_tiled(lextent, ayer_name)&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;- _download_single_tile(extent, layer_name)&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;- _embed_georeferencing(mns_path, extent)&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;br&gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="250" y="728.89" width="250" height="271.11" as="geometry"/>
                </mxCell>
                <mxCell id="13" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;Trail&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ speed : float&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ max_separation: float&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ crs : QgsCoordinateReferenceSystem&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ transform_context : QgsTransformContext&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ trail_points = TrailPoint[]&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ extent : QgsRectangle&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ read_trail(gpx_file: str)&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ calculate_bbox(dist): BBox&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ densify()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ create_buffer()&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+&amp;nbsp;&lt;span style=&quot;background-color: transparent;&quot;&gt;convert2lam93()&lt;/span&gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="300" y="325" width="250" height="220" as="geometry"/>
                </mxCell>
                <mxCell id="21" value="&lt;font&gt;2..&lt;/font&gt;&lt;font style=&quot;font-size: 19px;&quot;&gt;*&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="110" y="437.89000000000004" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="24" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="750" y="698.8900000000001" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="28" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;MarcheALOmbrePlugin&lt;/b&gt;&lt;/p&gt;&lt;hr style=&quot;border-style:solid;&quot; size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font style=&quot;&quot;&gt;+ iface : QgsInterface&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font style=&quot;&quot;&gt;+ provider : MarcheALOmbreProvider&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;hr style=&quot;border-style:solid;&quot; size=&quot;1&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ initProcessing()&lt;/span&gt;&lt;/p&gt;&lt;div style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;&lt;font style=&quot;&quot;&gt;&amp;nbsp;+ initGui()&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;&lt;font style=&quot;&quot;&gt;&amp;nbsp;+ unload()&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;&lt;font style=&quot;&quot;&gt;&amp;nbsp;+ open_help()&lt;/font&gt;&lt;/div&gt;&lt;div style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;&lt;font style=&quot;&quot;&gt;&amp;nbsp;&lt;/font&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ run()&lt;/span&gt;&lt;/div&gt;" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="350" y="50" width="240" height="160" as="geometry"/>
                </mxCell>
                <mxCell id="80" style="edgeStyle=none;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;fontColor=default;" parent="1" source="29" target="13" edge="1">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="83" style="edgeStyle=none;html=1;entryX=0.5;entryY=0;entryDx=0;entryDy=0;fontColor=default;" edge="1" parent="1" source="29" target="90">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="755" y="728.8899999999999" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="84" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=1;exitDx=0;exitDy=0;entryX=0.5;entryY=0;entryDx=0;entryDy=0;rounded=0;fontColor=default;" edge="1" parent="1" source="29" target="12">
                    <mxGeometry relative="1" as="geometry"/>
                </mxCell>
                <mxCell id="29" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;&lt;font&gt;MarcheALOmbreAlgorithm&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ input&lt;br&gt;&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ output&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ departure_time&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ hiking_speed&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ adjsut_for_slope&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ picnic_point&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ picnic_duration&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ reverse_direction&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ buffer_mode&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;br&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ initAlgorithm()&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ processAlgorithm(parameters) : dict&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ postProcessAlgorithm() : dict&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;font&gt;+ helpUrl() : str&lt;/font&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ icon() : QIcon&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;+ createInstance() : MarcheALOmbreAlgorithm&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="644" y="280" width="222" height="310" as="geometry"/>
                </mxCell>
                <mxCell id="35" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="477" y="210" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="44" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="740" y="259.99999999999994" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="55" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="614" y="406.89" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="59" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="550" y="406.89000000000004" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="67" style="edgeStyle=orthogonalEdgeStyle;html=1;exitX=0.5;exitY=0;exitDx=0;exitDy=0;entryX=0.5;entryY=1;entryDx=0;entryDy=0;rounded=0;curved=0;endArrow=diamondThin;endFill=1;endSize=17;startSize=7;fontColor=default;" parent="1" source="29" target="28" edge="1">
                    <mxGeometry relative="1" as="geometry">
                        <mxPoint x="797" y="383" as="sourcePoint"/>
                        <mxPoint x="534" y="280" as="targetPoint"/>
                    </mxGeometry>
                </mxCell>
                <mxCell id="75" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="728" y="590" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="76" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" parent="1" vertex="1">
                    <mxGeometry x="270" y="406.89" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="88" value="&lt;font&gt;1..&lt;/font&gt;&lt;font style=&quot;font-size: 19px;&quot;&gt;*&lt;/font&gt;" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" vertex="1" parent="1">
                    <mxGeometry x="330" y="688.89" width="40" height="40" as="geometry"/>
                </mxCell>
                <mxCell id="89" value="1" style="text;html=1;align=center;verticalAlign=middle;resizable=0;points=[];autosize=1;strokeColor=none;fillColor=none;fontColor=default;" vertex="1" parent="1">
                    <mxGeometry x="760" y="250" width="30" height="30" as="geometry"/>
                </mxCell>
                <mxCell id="90" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;ShadowCalculator&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ high_res_mns : float[][]&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;&lt;span style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); background-color: transparent;&quot;&gt;+ low_res_mns : float[][]&lt;/span&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;&lt;span style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); background-color: transparent;&quot;&gt;+ calculate_shadows(trail_points)&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ draw_bresenham_line(x_start, y_start, dist_max, azimut) : (int,int)[]&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ calc_angle(trail_point, index_list, mns_data, resolution) : float[]&lt;br style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;- _to_pixel(x, y):&amp;nbsp;&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;&lt;br style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;&lt;/p&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;br&gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontColor=default;" vertex="1" parent="1">
                    <mxGeometry x="630" y="728.89" width="250" height="181.11" as="geometry"/>
                </mxCell>
                <mxCell id="91" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;TrailPoint&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;margin:0px;margin-left:4px;&quot;&gt;&lt;span style=&quot;background-color: transparent;&quot;&gt;+ lat : float&lt;/span&gt;&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ lon : float&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ x : float&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ y : float&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ z : float&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ datetime : QDateTime&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ solar_pos : (float, float)&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;+ calc_solar_pos(datetime) : (float,float)&lt;/p&gt;&lt;p style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30); margin: 0px 0px 0px 4px;&quot;&gt;&lt;br style=&quot;scrollbar-color: rgb(75, 75, 75) rgb(27, 29, 30);&quot;&gt;&lt;/p&gt;" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontColor=default;" vertex="1" parent="1">
                    <mxGeometry x="50" y="470" width="192" height="177.5" as="geometry"/>
                </mxCell>
            </root>
        </mxGraphModel>
    </diagram>
</mxfile>