| activity_diff |
{'diff': '\n <table class="diff" id="difflib_chg_to0__top"\n cellspacing="0" cellpadding="0" rules="groups" >\n <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>\n <colgroup></colgroup> <colgroup></colgroup> <colgroup></colgroup>\n \n <tbody>\n <tr><td class="diff_next"><a href="#difflib_chg_to0__0">f</a></td><td class="diff_header" id="from0_1">1</td><td nowrap="nowrap">{</td><td class="diff_next"><a href="#difflib_chg_to0__0">f</a></td><td class="diff_header" id="to0_1">1</td><td nowrap="nowrap">{</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_2">2</td><td nowrap="nowrap"> "author": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_2">2</td><td nowrap="nowrap"> "author": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_3">3</td><td nowrap="nowrap"> "author_email": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_3">3</td><td nowrap="nowrap"> "author_email": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_4">4</td><td nowrap="nowrap"> "contact": [</td><td class="diff_next"></td><td class="diff_header" id="to0_4">4</td><td nowrap="nowrap"> "contact": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_5">5</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_5">5</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_6">6</td><td nowrap="nowrap"> "electronic_mail_address": "m.pienaar@saeon.nrf.ac.za",</td><td class="diff_next"></td><td class="diff_header" id="to0_6">6</td><td nowrap="nowrap"> "electronic_mail_address": "m.pienaar@saeon.nrf.ac.za",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_7">7</td><td nowrap="nowrap"> "individual_name": "Marc Pienaar",</td><td class="diff_next"></td><td class="diff_header" id="to0_7">7</td><td nowrap="nowrap"> "individual_name": "Marc Pienaar",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_8">8</td><td nowrap="nowrap"> "position_name": "Data Science Lead",</td><td class="diff_next"></td><td class="diff_header" id="to0_8">8</td><td nowrap="nowrap"> "position_name": "Data Science Lead",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_9">9</td><td nowrap="nowrap"> "role": "point_of_contact"</td><td class="diff_next"></td><td class="diff_header" id="to0_9">9</td><td nowrap="nowrap"> "role": "point_of_contact"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_10">10</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_10">10</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_11">11</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_11">11</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_12">12</td><td nowrap="nowrap"> "contact_information": [</td><td class="diff_next"></td><td class="diff_header" id="to0_12">12</td><td nowrap="nowrap"> "contact_information": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_13">13</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_13">13</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_14">14</td><td nowrap="nowrap"> "facsimile": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_14">14</td><td nowrap="nowrap"> "facsimile": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_15">15</td><td nowrap="nowrap"> "voice": ""</td><td class="diff_next"></td><td class="diff_header" id="to0_15">15</td><td nowrap="nowrap"> "voice": ""</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_16">16</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_16">16</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_17">17</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_17">17</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_18">18</td><td nowrap="nowrap"> "creator_user_id": "64e47517-dce0-4a13-9ab7-ef1cfcd1d892",</td><td class="diff_next"></td><td class="diff_header" id="to0_18">18</td><td nowrap="nowrap"> "creator_user_id": "64e47517-dce0-4a13-9ab7-ef1cfcd1d892",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_19">19</td><td nowrap="nowrap"> "dataset_reference_date": [</td><td class="diff_next"></td><td class="diff_header" id="to0_19">19</td><td nowrap="nowrap"> "dataset_reference_date": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_20">20</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_20">20</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_21">21</td><td nowrap="nowrap"> "reference": "2023-01-01T00:00",</td><td class="diff_next"></td><td class="diff_header" id="to0_21">21</td><td nowrap="nowrap"> "reference": "2023-01-01T00:00",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_22">22</td><td nowrap="nowrap"> "reference_date_type": 1</td><td class="diff_next"></td><td class="diff_header" id="to0_22">22</td><td nowrap="nowrap"> "reference_date_type": 1</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_23">23</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_23">23</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_24">24</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_24">24</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_25">25</td><td nowrap="nowrap"> "distribution_format": [</td><td class="diff_next"></td><td class="diff_header" id="to0_25">25</td><td nowrap="nowrap"> "distribution_format": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_26">26</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_26">26</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_27">27</td><td nowrap="nowrap"> "name": "Vector",</td><td class="diff_next"></td><td class="diff_header" id="to0_27">27</td><td nowrap="nowrap"> "name": "Vector",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_28">28</td><td nowrap="nowrap"> "version": "1.1"</td><td class="diff_next"></td><td class="diff_header" id="to0_28">28</td><td nowrap="nowrap"> "version": "1.1"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_29">29</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_29">29</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_30">30</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_30">30</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_31">31</td><td nowrap="nowrap"> "doi": "10.15493/BEA.DATA.250320-20",</td><td class="diff_next"></td><td class="diff_header" id="to0_31">31</td><td nowrap="nowrap"> "doi": "10.15493/BEA.DATA.250320-20",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_32">32</td><td nowrap="nowrap"> "featured": "false",</td><td class="diff_next"></td><td class="diff_header" id="to0_32">32</td><td nowrap="nowrap"> "featured": "false",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_33">33</td><td nowrap="nowrap"> "groups": [],</td><td class="diff_next"></td><td class="diff_header" id="to0_33">33</td><td nowrap="nowrap"> "groups": [],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_34">34</td><td nowrap="nowrap"> "id": "695aa705-9c99-41b3-983b-6bbc25d36d45",</td><td class="diff_next"></td><td class="diff_header" id="to0_34">34</td><td nowrap="nowrap"> "id": "695aa705-9c99-41b3-983b-6bbc25d36d45",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_35">35</td><td nowrap="nowrap"> "isopen": false,</td><td class="diff_next"></td><td class="diff_header" id="to0_35">35</td><td nowrap="nowrap"> "isopen": false,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_36">36</td><td nowrap="nowrap"> "license_id": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_36">36</td><td nowrap="nowrap"> "license_id": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_37">37</td><td nowrap="nowrap"> "license_title": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_37">37</td><td nowrap="nowrap"> "license_title": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_38">38</td><td nowrap="nowrap"> "lineage_statement": "A cost surface using a digital elevation model </td><td class="diff_next"></td><td class="diff_header" id="to0_38">38</td><td nowrap="nowrap"> "lineage_statement": "A cost surface using a digital elevation model </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_39">39</td><td nowrap="nowrap">(SRTM v3) [~30m] was used as the basis, with main water features </td><td class="diff_next"></td><td class="diff_header" id="to0_39">39</td><td nowrap="nowrap">(SRTM v3) [~30m] was used as the basis, with main water features </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_40">40</td><td nowrap="nowrap">(rivers and dams) and a slope threshold of 15 degrees removed as </td><td class="diff_next"></td><td class="diff_header" id="to0_40">40</td><td nowrap="nowrap">(rivers and dams) and a slope threshold of 15 degrees removed as </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_41">41</td><td nowrap="nowrap">obstacles from the surface. Start points (derived from a 1km x 1km </td><td class="diff_next"></td><td class="diff_header" id="to0_41">41</td><td nowrap="nowrap">obstacles from the surface. Start points (derived from a 1km x 1km </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_42">42</td><td nowrap="nowrap">raster grid, and end points (the NGI road layer) rasterised at a 100m </td><td class="diff_next"></td><td class="diff_header" id="to0_42">42</td><td nowrap="nowrap">raster grid, and end points (the NGI road layer) rasterised at a 100m </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_43">43</td><td nowrap="nowrap">x 100m resolution, both using the StatsSA BSU grid projection </td><td class="diff_next"></td><td class="diff_header" id="to0_43">43</td><td nowrap="nowrap">x 100m resolution, both using the StatsSA BSU grid projection </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_44">44</td><td nowrap="nowrap">[\'+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 </td><td class="diff_next"></td><td class="diff_header" id="to0_44">44</td><td nowrap="nowrap">[\'+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_45">45</td><td nowrap="nowrap">+y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location </td><td class="diff_next"></td><td class="diff_header" id="to0_45">45</td><td nowrap="nowrap">+y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_46">46</td><td nowrap="nowrap">inputs. Non-NA raster values from these location inputs were converted </td><td class="diff_next"></td><td class="diff_header" id="to0_46">46</td><td nowrap="nowrap">inputs. Non-NA raster values from these location inputs were converted </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_47">47</td><td nowrap="nowrap">to points (the centroid of each Non-NA pixel), then reprojected to the </td><td class="diff_next"></td><td class="diff_header" id="to0_47">47</td><td nowrap="nowrap">to points (the centroid of each Non-NA pixel), then reprojected to the </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_48">48</td><td nowrap="nowrap">same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 \\u2013 </td><td class="diff_next"></td><td class="diff_header" id="to0_48">48</td><td nowrap="nowrap">same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 \\u2013 </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_49">49</td><td nowrap="nowrap">Geographic). A variable resolution window was used for modelling </td><td class="diff_next"></td><td class="diff_header" id="to0_49">49</td><td nowrap="nowrap">Geographic). A variable resolution window was used for modelling </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_50">50</td><td nowrap="nowrap">[based on 250 start points at a time, each linked to 100 closest road </td><td class="diff_next"></td><td class="diff_header" id="to0_50">50</td><td nowrap="nowrap">[based on 250 start points at a time, each linked to 100 closest road </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_51">51</td><td nowrap="nowrap">points [end points] to create an extent and perform the modelling </td><td class="diff_next"></td><td class="diff_header" id="to0_51">51</td><td nowrap="nowrap">points [end points] to create an extent and perform the modelling </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_52">52</td><td nowrap="nowrap">operation in reasonably sized chunks].",</td><td class="diff_next"></td><td class="diff_header" id="to0_52">52</td><td nowrap="nowrap">operation in reasonably sized chunks].",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_53">53</td><td nowrap="nowrap"> "maintainer": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_53">53</td><td nowrap="nowrap"> "maintainer": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_54">54</td><td nowrap="nowrap"> "maintainer_email": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_54">54</td><td nowrap="nowrap"> "maintainer_email": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_55">55</td><td nowrap="nowrap"> "metadata_created": "2025-09-11T14:42:20.726226",</td><td class="diff_next"></td><td class="diff_header" id="to0_55">55</td><td nowrap="nowrap"> "metadata_created": "2025-09-11T14:42:20.726226",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_56">56</td><td nowrap="nowrap"> "metadata_date": "2023-01-01T00:00",</td><td class="diff_next"></td><td class="diff_header" id="to0_56">56</td><td nowrap="nowrap"> "metadata_date": "2023-01-01T00:00",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_57">57</td><td nowrap="nowrap"> "metadata_language_and_character_set": [</td><td class="diff_next"></td><td class="diff_header" id="to0_57">57</td><td nowrap="nowrap"> "metadata_language_and_character_set": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_58">58</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_58">58</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_59">59</td><td nowrap="nowrap"> "dataset_character_set": "utf-8",</td><td class="diff_next"></td><td class="diff_header" id="to0_59">59</td><td nowrap="nowrap"> "dataset_character_set": "utf-8",</td></tr>\n <tr><td class="diff_next" id="difflib_chg_to0__0"></td><td class="diff_header" id="from0_60">60</td><td nowrap="nowrap"> "dataset_language": "English",</td><td class="diff_next"></td><td class="diff_header" id="to0_60">60</td><td nowrap="nowrap"> "dataset_language": "English",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_61">61</td><td nowrap="nowrap"> "metadata_character_set": "utf-8",</td><td class="diff_next"></td><td class="diff_header" id="to0_61">61</td><td nowrap="nowrap"> "metadata_character_set": "utf-8",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_62">62</td><td nowrap="nowrap"> "metadata_language": "English"</td><td class="diff_next"></td><td class="diff_header" id="to0_62">62</td><td nowrap="nowrap"> "metadata_language": "English"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_63">63</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_63">63</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_64">64</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_64">64</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"><a href="#difflib_chg_to0__1">n</a></td><td class="diff_header" id="from0_65">65</td><td nowrap="nowrap"> "metadata_modified": "2025-09-11T14:4<span class="diff_chg">2</span>:<span class="diff_chg">20</span>.7<span class="diff_chg">2623</span>6",</td><td class="diff_next"><a href="#difflib_chg_to0__1">n</a></td><td class="diff_header" id="to0_65">65</td><td nowrap="nowrap"> "metadata_modified": "2025-09-11T14:4<span class="diff_chg">3</span>:<span class="diff_chg">39</span>.<span class="diff_add">4</span>7<span class="diff_chg">981</span>6",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_66">66</td><td nowrap="nowrap"> "metadata_thumbnail": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_66">66</td><td nowrap="nowrap"> "metadata_thumbnail": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_67">67</td><td nowrap="nowrap"> "name": "virtual_roads_for_the_bioenergy_atlas",</td><td class="diff_next"></td><td class="diff_header" id="to0_67">67</td><td nowrap="nowrap"> "name": "virtual_roads_for_the_bioenergy_atlas",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_68">68</td><td nowrap="nowrap"> "notes": "Virtual roads representing theoretical paths [roads] </td><td class="diff_next"></td><td class="diff_header" id="to0_68">68</td><td nowrap="nowrap"> "notes": "Virtual roads representing theoretical paths [roads] </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_69">69</td><td nowrap="nowrap">starting every 1km apart (across South Africa) from areas where no </td><td class="diff_next"></td><td class="diff_header" id="to0_69">69</td><td nowrap="nowrap">starting every 1km apart (across South Africa) from areas where no </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_70">70</td><td nowrap="nowrap">roads exists to the closest road segment in South Africa\'s National </td><td class="diff_next"></td><td class="diff_header" id="to0_70">70</td><td nowrap="nowrap">roads exists to the closest road segment in South Africa\'s National </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_71">71</td><td nowrap="nowrap">Geo-spatial Information (NGI) 2019 road layer (http://www.ngi.gov.za) </td><td class="diff_next"></td><td class="diff_header" id="to0_71">71</td><td nowrap="nowrap">Geo-spatial Information (NGI) 2019 road layer (http://www.ngi.gov.za) </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_72">72</td><td nowrap="nowrap">-- for use in the SAEON BioEnergy Atlas feasibility model. A cost </td><td class="diff_next"></td><td class="diff_header" id="to0_72">72</td><td nowrap="nowrap">-- for use in the SAEON BioEnergy Atlas feasibility model. A cost </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_73">73</td><td nowrap="nowrap">surface using a digital elevation model (SRTM v3) [~30m] was used as </td><td class="diff_next"></td><td class="diff_header" id="to0_73">73</td><td nowrap="nowrap">surface using a digital elevation model (SRTM v3) [~30m] was used as </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_74">74</td><td nowrap="nowrap">the basis, with main water features (rivers and dams) and a slope </td><td class="diff_next"></td><td class="diff_header" id="to0_74">74</td><td nowrap="nowrap">the basis, with main water features (rivers and dams) and a slope </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_75">75</td><td nowrap="nowrap">threshold of 15 degrees removed as obstacles from the surface. Start </td><td class="diff_next"></td><td class="diff_header" id="to0_75">75</td><td nowrap="nowrap">threshold of 15 degrees removed as obstacles from the surface. Start </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_76">76</td><td nowrap="nowrap">points (derived from a 1km x 1km raster grid, and end points (the NGI </td><td class="diff_next"></td><td class="diff_header" id="to0_76">76</td><td nowrap="nowrap">points (derived from a 1km x 1km raster grid, and end points (the NGI </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_77">77</td><td nowrap="nowrap">road layer) rasterised at a 100m x 100m resolution, both using the </td><td class="diff_next"></td><td class="diff_header" id="to0_77">77</td><td nowrap="nowrap">road layer) rasterised at a 100m x 100m resolution, both using the </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_78">78</td><td nowrap="nowrap">StatsSA BSU grid projection [\'+proj=aea +lat_1=-22 +lat_2=-38 </td><td class="diff_next"></td><td class="diff_header" id="to0_78">78</td><td nowrap="nowrap">StatsSA BSU grid projection [\'+proj=aea +lat_1=-22 +lat_2=-38 </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_79">79</td><td nowrap="nowrap">+lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m </td><td class="diff_next"></td><td class="diff_header" id="to0_79">79</td><td nowrap="nowrap">+lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_80">80</td><td nowrap="nowrap">+no_defs]) were used as location inputs. Non-NA raster values from </td><td class="diff_next"></td><td class="diff_header" id="to0_80">80</td><td nowrap="nowrap">+no_defs]) were used as location inputs. Non-NA raster values from </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_81">81</td><td nowrap="nowrap">these location inputs were converted to points (the centroid of each </td><td class="diff_next"></td><td class="diff_header" id="to0_81">81</td><td nowrap="nowrap">these location inputs were converted to points (the centroid of each </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_82">82</td><td nowrap="nowrap">Non-NA pixel), then reprojected to the same resolution as the cost </td><td class="diff_next"></td><td class="diff_header" id="to0_82">82</td><td nowrap="nowrap">Non-NA pixel), then reprojected to the same resolution as the cost </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_83">83</td><td nowrap="nowrap">surface (e.g. EPSG:4326 - WGS 84 \\u2013 Geographic). A variable </td><td class="diff_next"></td><td class="diff_header" id="to0_83">83</td><td nowrap="nowrap">surface (e.g. EPSG:4326 - WGS 84 \\u2013 Geographic). A variable </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_84">84</td><td nowrap="nowrap">resolution window was used for modelling [based on 250 start points at </td><td class="diff_next"></td><td class="diff_header" id="to0_84">84</td><td nowrap="nowrap">resolution window was used for modelling [based on 250 start points at </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_85">85</td><td nowrap="nowrap">a time, each linked to 100 closest road points [end points] to create </td><td class="diff_next"></td><td class="diff_header" id="to0_85">85</td><td nowrap="nowrap">a time, each linked to 100 closest road points [end points] to create </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_86">86</td><td nowrap="nowrap">an extent and perform the modelling operation in reasonably sized </td><td class="diff_next"></td><td class="diff_header" id="to0_86">86</td><td nowrap="nowrap">an extent and perform the modelling operation in reasonably sized </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_87">87</td><td nowrap="nowrap">chunks]. The scikit-image python package was used to find the shortest </td><td class="diff_next"></td><td class="diff_header" id="to0_87">87</td><td nowrap="nowrap">chunks]. The scikit-image python package was used to find the shortest </td></tr>\n <tr><td class="diff_next" id="difflib_chg_to0__1"></td><td class="diff_header" id="from0_88">88</td><td nowrap="nowrap">path through each cost surface array cropped using the variable window </td><td class="diff_next"></td><td class="diff_header" id="to0_88">88</td><td nowrap="nowrap">path through each cost surface array cropped using the variable window </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_89">89</td><td nowrap="nowrap">extent, using a fully connected (i.e diagonal pixels) minimum cost </td><td class="diff_next"></td><td class="diff_header" id="to0_89">89</td><td nowrap="nowrap">extent, using a fully connected (i.e diagonal pixels) minimum cost </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_90">90</td><td nowrap="nowrap">path (MCU) algorithm. All outputs were merged to create a seamless </td><td class="diff_next"></td><td class="diff_header" id="to0_90">90</td><td nowrap="nowrap">path (MCU) algorithm. All outputs were merged to create a seamless </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_91">91</td><td nowrap="nowrap">Virtual roads layer with 1 051 696 individual paths covering South </td><td class="diff_next"></td><td class="diff_header" id="to0_91">91</td><td nowrap="nowrap">Virtual roads layer with 1 051 696 individual paths covering South </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_92">92</td><td nowrap="nowrap">Africa.",</td><td class="diff_next"></td><td class="diff_header" id="to0_92">92</td><td nowrap="nowrap">Africa.",</td></tr>\n <tr><td class="diff_next"><a href="#difflib_chg_to0__2">n</a></td><td class="diff_header" id="from0_93">93</td><td nowrap="nowrap"> "num_resources": <span class="diff_chg">0</span>,</td><td class="diff_next"><a href="#difflib_chg_to0__2">n</a></td><td class="diff_header" id="to0_93">93</td><td nowrap="nowrap"> "num_resources": <span class="diff_chg">1</span>,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_94">94</td><td nowrap="nowrap"> "num_tags": <span class="diff_chg">0</span>,</td><td class="diff_next"></td><td class="diff_header" id="to0_94">94</td><td nowrap="nowrap"> "num_tags": <span class="diff_chg">1</span>,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_95">95</td><td nowrap="nowrap"> "online_resource": [</td><td class="diff_next"></td><td class="diff_header" id="to0_95">95</td><td nowrap="nowrap"> "online_resource": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_96">96</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_96">96</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_97">97</td><td nowrap="nowrap"> "application_profile": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_97">97</td><td nowrap="nowrap"> "application_profile": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_98">98</td><td nowrap="nowrap"> "description": 2,</td><td class="diff_next"></td><td class="diff_header" id="to0_98">98</td><td nowrap="nowrap"> "description": 2,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_99">99</td><td nowrap="nowrap"> "linkage": "http://doi.org/10.15493/BEA.DATA.250320-20",</td><td class="diff_next"></td><td class="diff_header" id="to0_99">99</td><td nowrap="nowrap"> "linkage": "http://doi.org/10.15493/BEA.DATA.250320-20",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_100">100</td><td nowrap="nowrap"> "name": "virtual_roads_for_the_bioenergy_atlas"</td><td class="diff_next"></td><td class="diff_header" id="to0_100">100</td><td nowrap="nowrap"> "name": "virtual_roads_for_the_bioenergy_atlas"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_101">101</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_101">101</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_102">102</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_102">102</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_103">103</td><td nowrap="nowrap"> "organization": {</td><td class="diff_next"></td><td class="diff_header" id="to0_103">103</td><td nowrap="nowrap"> "organization": {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_104">104</td><td nowrap="nowrap"> "approval_status": "approved",</td><td class="diff_next"></td><td class="diff_header" id="to0_104">104</td><td nowrap="nowrap"> "approval_status": "approved",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_105">105</td><td nowrap="nowrap"> "created": "2025-05-26T07:57:06.135422",</td><td class="diff_next"></td><td class="diff_header" id="to0_105">105</td><td nowrap="nowrap"> "created": "2025-05-26T07:57:06.135422",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_106">106</td><td nowrap="nowrap"> "description": "The South African Environmental Observation </td><td class="diff_next"></td><td class="diff_header" id="to0_106">106</td><td nowrap="nowrap"> "description": "The South African Environmental Observation </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_107">107</td><td nowrap="nowrap">Network (SAEON) is a long-term environmental observation and research </td><td class="diff_next"></td><td class="diff_header" id="to0_107">107</td><td nowrap="nowrap">Network (SAEON) is a long-term environmental observation and research </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_108">108</td><td nowrap="nowrap">facility of the National Research Foundation (NRF). SAEON\\u2019s three </td><td class="diff_next"></td><td class="diff_header" id="to0_108">108</td><td nowrap="nowrap">facility of the National Research Foundation (NRF). SAEON\\u2019s three </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_109">109</td><td nowrap="nowrap">focus areas are environmental observation, data management and </td><td class="diff_next"></td><td class="diff_header" id="to0_109">109</td><td nowrap="nowrap">focus areas are environmental observation, data management and </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_110">110</td><td nowrap="nowrap">education outreach. The Department of Science, Technology and </td><td class="diff_next"></td><td class="diff_header" id="to0_110">110</td><td nowrap="nowrap">education outreach. The Department of Science, Technology and </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_111">111</td><td nowrap="nowrap">Innovation (DSTI) provides core funding for these activities. ",</td><td class="diff_next"></td><td class="diff_header" id="to0_111">111</td><td nowrap="nowrap">Innovation (DSTI) provides core funding for these activities. ",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_112">112</td><td nowrap="nowrap"> "id": "c4a18544-cded-4488-9f43-c02a1094ad39",</td><td class="diff_next"></td><td class="diff_header" id="to0_112">112</td><td nowrap="nowrap"> "id": "c4a18544-cded-4488-9f43-c02a1094ad39",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_113">113</td><td nowrap="nowrap"> "image_url": "2025-08-01-083136.289314LogoSAEON.png",</td><td class="diff_next"></td><td class="diff_header" id="to0_113">113</td><td nowrap="nowrap"> "image_url": "2025-08-01-083136.289314LogoSAEON.png",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_114">114</td><td nowrap="nowrap"> "is_organization": true,</td><td class="diff_next"></td><td class="diff_header" id="to0_114">114</td><td nowrap="nowrap"> "is_organization": true,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_115">115</td><td nowrap="nowrap"> "name": "saeon",</td><td class="diff_next"></td><td class="diff_header" id="to0_115">115</td><td nowrap="nowrap"> "name": "saeon",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_116">116</td><td nowrap="nowrap"> "state": "active",</td><td class="diff_next"></td><td class="diff_header" id="to0_116">116</td><td nowrap="nowrap"> "state": "active",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_117">117</td><td nowrap="nowrap"> "title": "NRF-SAEON",</td><td class="diff_next"></td><td class="diff_header" id="to0_117">117</td><td nowrap="nowrap"> "title": "NRF-SAEON",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_118">118</td><td nowrap="nowrap"> "type": "organization"</td><td class="diff_next"></td><td class="diff_header" id="to0_118">118</td><td nowrap="nowrap"> "type": "organization"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_119">119</td><td nowrap="nowrap"> },</td><td class="diff_next"></td><td class="diff_header" id="to0_119">119</td><td nowrap="nowrap"> },</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_120">120</td><td nowrap="nowrap"> "owner_org": "c4a18544-cded-4488-9f43-c02a1094ad39",</td><td class="diff_next"></td><td class="diff_header" id="to0_120">120</td><td nowrap="nowrap"> "owner_org": "c4a18544-cded-4488-9f43-c02a1094ad39",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_121">121</td><td nowrap="nowrap"> "private": false,</td><td class="diff_next"></td><td class="diff_header" id="to0_121">121</td><td nowrap="nowrap"> "private": false,</td></tr>\n <tr><td class="diff_next" id="difflib_chg_to0__2"></td><td class="diff_header" id="from0_122">122</td><td nowrap="nowrap"> "reference_date": "2023-01-01T00:00",</td><td class="diff_next"></td><td class="diff_header" id="to0_122">122</td><td nowrap="nowrap"> "reference_date": "2023-01-01T00:00",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_123">123</td><td nowrap="nowrap"> "reference_system_additional_info": "Temporal extent: </td><td class="diff_next"></td><td class="diff_header" id="to0_123">123</td><td nowrap="nowrap"> "reference_system_additional_info": "Temporal extent: </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_124">124</td><td nowrap="nowrap">2020-01-01/2021-01-01",</td><td class="diff_next"></td><td class="diff_header" id="to0_124">124</td><td nowrap="nowrap">2020-01-01/2021-01-01",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_125">125</td><td nowrap="nowrap"> "relationships_as_object": [],</td><td class="diff_next"></td><td class="diff_header" id="to0_125">125</td><td nowrap="nowrap"> "relationships_as_object": [],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_126">126</td><td nowrap="nowrap"> "relationships_as_subject": [],</td><td class="diff_next"></td><td class="diff_header" id="to0_126">126</td><td nowrap="nowrap"> "relationships_as_subject": [],</td></tr>\n <tr><td class="diff_next"><a href="#difflib_chg_to0__3">n</a></td><td class="diff_header" id="from0_127">127</td><td nowrap="nowrap"> "resources": [<span class="diff_sub">],</span></td><td class="diff_next"><a href="#difflib_chg_to0__3">n</a></td><td class="diff_header" id="to0_127">127</td><td nowrap="nowrap"> "resources": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_128">128</td><td nowrap="nowrap"><span class="diff_add"> {</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_129">129</td><td nowrap="nowrap"><span class="diff_add"> "cache_last_updated": null,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_130">130</td><td nowrap="nowrap"><span class="diff_add"> "cache_url": null,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_131">131</td><td nowrap="nowrap"><span class="diff_add"> "created": "2025-09-11T14:43:39.502682",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_132">132</td><td nowrap="nowrap"><span class="diff_add"> "description": "",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_133">133</td><td nowrap="nowrap"><span class="diff_add"> "format": "SHP",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_134">134</td><td nowrap="nowrap"><span class="diff_add"> "format_version": "",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_135">135</td><td nowrap="nowrap"><span class="diff_add"> "hash": "",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_136">136</td><td nowrap="nowrap"><span class="diff_add"> "id": "21133e12-ea91-4955-866c-62ae4330e4ac",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_137">137</td><td nowrap="nowrap"><span class="diff_add"> "last_modified": null,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_138">138</td><td nowrap="nowrap"><span class="diff_add"> "metadata_modified": "2025-09-11T14:43:39.493080",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_139">139</td><td nowrap="nowrap"><span class="diff_add"> "mimetype": null,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_140">140</td><td nowrap="nowrap"><span class="diff_add"> "mimetype_inner": null,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_141">141</td><td nowrap="nowrap"><span class="diff_add"> "name": "Virtual Roads for the BioEnergy Atlas",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_142">142</td><td nowrap="nowrap"><span class="diff_add"> "package_id": "695aa705-9c99-41b3-983b-6bbc25d36d45",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_143">143</td><td nowrap="nowrap"><span class="diff_add"> "position": 0,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_144">144</td><td nowrap="nowrap"><span class="diff_add"> "resource_type": "other",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_145">145</td><td nowrap="nowrap"><span class="diff_add"> "size": null,</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_146">146</td><td nowrap="nowrap"><span class="diff_add"> "state": "active",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_147">147</td><td nowrap="nowrap"><span class="diff_add"> "upload_mode": "single",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_148">148</td><td nowrap="nowrap"><span class="diff_add"> "url": </span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_149">149</td><td nowrap="nowrap"><span class="diff_add">"https://repository.saeon.ac.za/index.php/s/AR3iz9wrn4YFmcb",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_150">150</td><td nowrap="nowrap"><span class="diff_add"> "url_type": null</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_151">151</td><td nowrap="nowrap"><span class="diff_add"> }</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_152">152</td><td nowrap="nowrap"><span class="diff_add"> ],</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_128">128</td><td nowrap="nowrap"> "responsible_party": [</td><td class="diff_next"></td><td class="diff_header" id="to0_153">153</td><td nowrap="nowrap"> "responsible_party": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_129">129</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_154">154</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_130">130</td><td nowrap="nowrap"> "electronic_mail_address": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_155">155</td><td nowrap="nowrap"> "electronic_mail_address": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_131">131</td><td nowrap="nowrap"> "individual_name": "South African Environmental Observation </td><td class="diff_next"></td><td class="diff_header" id="to0_156">156</td><td nowrap="nowrap"> "individual_name": "South African Environmental Observation </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_132">132</td><td nowrap="nowrap">Network",</td><td class="diff_next"></td><td class="diff_header" id="to0_157">157</td><td nowrap="nowrap">Network",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_133">133</td><td nowrap="nowrap"> "position_name": "SAEON",</td><td class="diff_next"></td><td class="diff_header" id="to0_158">158</td><td nowrap="nowrap"> "position_name": "SAEON",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_134">134</td><td nowrap="nowrap"> "role": "originator",</td><td class="diff_next"></td><td class="diff_header" id="to0_159">159</td><td nowrap="nowrap"> "role": "originator",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_135">135</td><td nowrap="nowrap"> "website": "https://catalogue.saeon.ac.za"</td><td class="diff_next"></td><td class="diff_header" id="to0_160">160</td><td nowrap="nowrap"> "website": "https://catalogue.saeon.ac.za"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_136">136</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_161">161</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_137">137</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_162">162</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_138">138</td><td nowrap="nowrap"> "responsible_party_contact_address": [</td><td class="diff_next"></td><td class="diff_header" id="to0_163">163</td><td nowrap="nowrap"> "responsible_party_contact_address": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_139">139</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_164">164</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_140">140</td><td nowrap="nowrap"> "administrative_area": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_165">165</td><td nowrap="nowrap"> "administrative_area": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_141">141</td><td nowrap="nowrap"> "city": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_166">166</td><td nowrap="nowrap"> "city": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_142">142</td><td nowrap="nowrap"> "delivery_point": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_167">167</td><td nowrap="nowrap"> "delivery_point": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_143">143</td><td nowrap="nowrap"> "postal_code": ""</td><td class="diff_next"></td><td class="diff_header" id="to0_168">168</td><td nowrap="nowrap"> "postal_code": ""</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_144">144</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_169">169</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_145">145</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_170">170</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_146">146</td><td nowrap="nowrap"> "responsible_party_contact_info": [</td><td class="diff_next"></td><td class="diff_header" id="to0_171">171</td><td nowrap="nowrap"> "responsible_party_contact_info": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_147">147</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_172">172</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_148">148</td><td nowrap="nowrap"> "facsimile": "",</td><td class="diff_next"></td><td class="diff_header" id="to0_173">173</td><td nowrap="nowrap"> "facsimile": "",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_149">149</td><td nowrap="nowrap"> "voice": ""</td><td class="diff_next"></td><td class="diff_header" id="to0_174">174</td><td nowrap="nowrap"> "voice": ""</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_150">150</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_175">175</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_151">151</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_176">176</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_152">152</td><td nowrap="nowrap"> "spatial": "{\\"type\\": \\"Polygon\\", \\"coordinates\\": [[[32.773142, </td><td class="diff_next"></td><td class="diff_header" id="to0_177">177</td><td nowrap="nowrap"> "spatial": "{\\"type\\": \\"Polygon\\", \\"coordinates\\": [[[32.773142, </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_153">153</td><td nowrap="nowrap">-34.421526], [18.418274, -34.421526], [18.418274, -22.771933], </td><td class="diff_next"></td><td class="diff_header" id="to0_178">178</td><td nowrap="nowrap">-34.421526], [18.418274, -34.421526], [18.418274, -22.771933], </td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_154">154</td><td nowrap="nowrap">[32.773142, -22.771933], [32.773142, -34.421526]]]}",</td><td class="diff_next"></td><td class="diff_header" id="to0_179">179</td><td nowrap="nowrap">[32.773142, -22.771933], [32.773142, -34.421526]]]}",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_155">155</td><td nowrap="nowrap"> "spatial_parameters": [</td><td class="diff_next"></td><td class="diff_header" id="to0_180">180</td><td nowrap="nowrap"> "spatial_parameters": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_156">156</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_181">181</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_157">157</td><td nowrap="nowrap"> "equivalent_scale": "100x100",</td><td class="diff_next"></td><td class="diff_header" id="to0_182">182</td><td nowrap="nowrap"> "equivalent_scale": "100x100",</td></tr>\n <tr><td class="diff_next" id="difflib_chg_to0__3"></td><td class="diff_header" id="from0_158">158</td><td nowrap="nowrap"> "spatial_reference_system": "EPSG: 4326",</td><td class="diff_next"></td><td class="diff_header" id="to0_183">183</td><td nowrap="nowrap"> "spatial_reference_system": "EPSG: 4326",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_159">159</td><td nowrap="nowrap"> "spatial_representation_type": "001"</td><td class="diff_next"></td><td class="diff_header" id="to0_184">184</td><td nowrap="nowrap"> "spatial_representation_type": "001"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_160">160</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_185">185</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_161">161</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_186">186</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_162">162</td><td nowrap="nowrap"> "state": "draft",</td><td class="diff_next"></td><td class="diff_header" id="to0_187">187</td><td nowrap="nowrap"> "state": "draft",</td></tr>\n <tr><td class="diff_next"><a href="#difflib_chg_to0__top">t</a></td><td class="diff_header" id="from0_163">163</td><td nowrap="nowrap"> "tags": [<span class="diff_sub">],</span></td><td class="diff_next"><a href="#difflib_chg_to0__top">t</a></td><td class="diff_header" id="to0_188">188</td><td nowrap="nowrap"> "tags": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_189">189</td><td nowrap="nowrap"><span class="diff_add"> {</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_190">190</td><td nowrap="nowrap"><span class="diff_add"> "display_name": "Imagery-Basemaps-Earth Cover",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_191">191</td><td nowrap="nowrap"><span class="diff_add"> "id": "8895be3b-53e6-43b4-b77b-571ea5ff5252",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_192">192</td><td nowrap="nowrap"><span class="diff_add"> "name": "Imagery-Basemaps-Earth Cover",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_193">193</td><td nowrap="nowrap"><span class="diff_add"> "state": "active",</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_194">194</td><td nowrap="nowrap"><span class="diff_add"> "vocabulary_id": null</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_195">195</td><td nowrap="nowrap"><span class="diff_add"> }</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header"></td><td nowrap="nowrap"></td><td class="diff_next"></td><td class="diff_header" id="to0_196">196</td><td nowrap="nowrap"><span class="diff_add"> ],</span></td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_164">164</td><td nowrap="nowrap"> "title": "virtual_roads_for_the_bioenergy_atlas",</td><td class="diff_next"></td><td class="diff_header" id="to0_197">197</td><td nowrap="nowrap"> "title": "virtual_roads_for_the_bioenergy_atlas",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_165">165</td><td nowrap="nowrap"> "topic_and_saeoss_themes": [</td><td class="diff_next"></td><td class="diff_header" id="to0_198">198</td><td nowrap="nowrap"> "topic_and_saeoss_themes": [</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_166">166</td><td nowrap="nowrap"> {</td><td class="diff_next"></td><td class="diff_header" id="to0_199">199</td><td nowrap="nowrap"> {</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_167">167</td><td nowrap="nowrap"> "iso_topic_category": "imageryBaseMapsEarthCover"</td><td class="diff_next"></td><td class="diff_header" id="to0_200">200</td><td nowrap="nowrap"> "iso_topic_category": "imageryBaseMapsEarthCover"</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_168">168</td><td nowrap="nowrap"> }</td><td class="diff_next"></td><td class="diff_header" id="to0_201">201</td><td nowrap="nowrap"> }</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_169">169</td><td nowrap="nowrap"> ],</td><td class="diff_next"></td><td class="diff_header" id="to0_202">202</td><td nowrap="nowrap"> ],</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_170">170</td><td nowrap="nowrap"> "type": "dataset",</td><td class="diff_next"></td><td class="diff_header" id="to0_203">203</td><td nowrap="nowrap"> "type": "dataset",</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_171">171</td><td nowrap="nowrap"> "url": null,</td><td class="diff_next"></td><td class="diff_header" id="to0_204">204</td><td nowrap="nowrap"> "url": null,</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_172">172</td><td nowrap="nowrap"> "version": null</td><td class="diff_next"></td><td class="diff_header" id="to0_205">205</td><td nowrap="nowrap"> "version": null</td></tr>\n <tr><td class="diff_next"></td><td class="diff_header" id="from0_173">173</td><td nowrap="nowrap">}</td><td class="diff_next"></td><td class="diff_header" id="to0_206">206</td><td nowrap="nowrap">}</td></tr>\n </tbody>\n </table>', 'activities': [{'id': 'c1ad67a3-50d8-4007-9b39-b5d40346d729', 'timestamp': '2025-09-11T14:42:20.771504', 'user_id': '64e47517-dce0-4a13-9ab7-ef1cfcd1d892', 'object_id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'activity_type': 'new package', 'data': {'package': {'author': None, 'author_email': None, 'creator_user_id': '64e47517-dce0-4a13-9ab7-ef1cfcd1d892', 'doi': '10.15493/BEA.DATA.250320-20', 'featured': 'false', 'id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'isopen': False, 'license_id': None, 'license_title': None, 'lineage_statement': "A cost surface using a digital elevation model (SRTM v3) [~30m] was used as the basis, with main water features (rivers and dams) and a slope threshold of 15 degrees removed as obstacles from the surface. Start points (derived from a 1km x 1km raster grid, and end points (the NGI road layer) rasterised at a 100m x 100m resolution, both using the StatsSA BSU grid projection ['+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location inputs. Non-NA raster values from these location inputs were converted to points (the centroid of each Non-NA pixel), then reprojected to the same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 – Geographic). A variable resolution window was used for modelling [based on 250 start points at a time, each linked to 100 closest road points [end points] to create an extent and perform the modelling operation in reasonably sized chunks].", 'maintainer': None, 'maintainer_email': None, 'metadata_created': '2025-09-11T14:42:20.726226', 'metadata_date': '2023-01-01T00:00', 'metadata_modified': '2025-09-11T14:42:20.726236', 'metadata_thumbnail': '', 'name': 'virtual_roads_for_the_bioenergy_atlas', 'notes': "Virtual roads representing theoretical paths [roads] starting every 1km apart (across South Africa) from areas where no roads exists to the closest road segment in South Africa's National Geo-spatial Information (NGI) 2019 road layer (http://www.ngi.gov.za) -- for use in the SAEON BioEnergy Atlas feasibility model. A cost surface using a digital elevation model (SRTM v3) [~30m] was used as the basis, with main water features (rivers and dams) and a slope threshold of 15 degrees removed as obstacles from the surface. Start points (derived from a 1km x 1km raster grid, and end points (the NGI road layer) rasterised at a 100m x 100m resolution, both using the StatsSA BSU grid projection ['+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location inputs. Non-NA raster values from these location inputs were converted to points (the centroid of each Non-NA pixel), then reprojected to the same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 – Geographic). A variable resolution window was used for modelling [based on 250 start points at a time, each linked to 100 closest road points [end points] to create an extent and perform the modelling operation in reasonably sized chunks]. The scikit-image python package was used to find the shortest path through each cost surface array cropped using the variable window extent, using a fully connected (i.e diagonal pixels) minimum cost path (MCU) algorithm. All outputs were merged to create a seamless Virtual roads layer with 1 051 696 individual paths covering South Africa.", 'num_resources': 0, 'num_tags': 0, 'organization': {'id': 'c4a18544-cded-4488-9f43-c02a1094ad39', 'name': 'saeon', 'title': 'NRF-SAEON', 'type': 'organization', 'description': 'The South African Environmental Observation Network (SAEON) is a long-term environmental observation and research facility of the National Research Foundation (NRF). SAEON’s three focus areas are environmental observation, data management and education outreach. The Department of Science, Technology and Innovation (DSTI) provides core funding for these activities. ', 'image_url': '2025-08-01-083136.289314LogoSAEON.png', 'created': '2025-05-26T07:57:06.135422', 'is_organization': True, 'approval_status': 'approved', 'state': 'active'}, 'owner_org': 'c4a18544-cded-4488-9f43-c02a1094ad39', 'private': False, 'reference_system_additional_info': 'Temporal extent: 2020-01-01/2021-01-01', 'spatial': '{"type": "Polygon", "coordinates": [[[32.773142, -34.421526], [18.418274, -34.421526], [18.418274, -22.771933], [32.773142, -22.771933], [32.773142, -34.421526]]]}', 'state': 'draft', 'title': 'virtual_roads_for_the_bioenergy_atlas', 'type': 'dataset', 'url': None, 'version': None, 'contact': [{'electronic_mail_address': 'm.pienaar@saeon.nrf.ac.za', 'individual_name': 'Marc Pienaar', 'position_name': 'Data Science Lead', 'role': 'point_of_contact'}], 'contact_information': [{'facsimile': '', 'voice': ''}], 'dataset_reference_date': [{'reference': '2023-01-01T00:00', 'reference_date_type': 1}], 'distribution_format': [{'name': 'Vector', 'version': '1.1'}], 'metadata_language_and_character_set': [{'dataset_character_set': 'utf-8', 'dataset_language': 'English', 'metadata_character_set': 'utf-8', 'metadata_language': 'English'}], 'online_resource': [{'application_profile': '', 'description': 2, 'linkage': 'http://doi.org/10.15493/BEA.DATA.250320-20', 'name': 'virtual_roads_for_the_bioenergy_atlas'}], 'responsible_party': [{'electronic_mail_address': '', 'individual_name': 'South African Environmental Observation Network', 'position_name': 'SAEON', 'role': 'originator', 'website': 'https://catalogue.saeon.ac.za'}], 'responsible_party_contact_address': [{'administrative_area': '', 'city': '', 'delivery_point': '', 'postal_code': ''}], 'responsible_party_contact_info': [{'facsimile': '', 'voice': ''}], 'spatial_parameters': [{'equivalent_scale': '100x100', 'spatial_reference_system': 'EPSG: 4326', 'spatial_representation_type': '001'}], 'topic_and_saeoss_themes': [{'iso_topic_category': 'imageryBaseMapsEarthCover'}], 'resources': [], 'tags': [], 'groups': [], 'relationships_as_subject': [], 'relationships_as_object': [], 'reference_date': '2023-01-01T00:00'}, 'actor': 'dseymour_19'}}, {'id': '7103dad2-b869-4a8f-b048-910cd5b2394b', 'timestamp': '2025-09-11T14:43:39.541103', 'user_id': '64e47517-dce0-4a13-9ab7-ef1cfcd1d892', 'object_id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'activity_type': 'changed package', 'data': {'package': {'author': None, 'author_email': None, 'creator_user_id': '64e47517-dce0-4a13-9ab7-ef1cfcd1d892', 'doi': '10.15493/BEA.DATA.250320-20', 'featured': 'false', 'id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'isopen': False, 'license_id': None, 'license_title': None, 'lineage_statement': "A cost surface using a digital elevation model (SRTM v3) [~30m] was used as the basis, with main water features (rivers and dams) and a slope threshold of 15 degrees removed as obstacles from the surface. Start points (derived from a 1km x 1km raster grid, and end points (the NGI road layer) rasterised at a 100m x 100m resolution, both using the StatsSA BSU grid projection ['+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location inputs. Non-NA raster values from these location inputs were converted to points (the centroid of each Non-NA pixel), then reprojected to the same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 – Geographic). A variable resolution window was used for modelling [based on 250 start points at a time, each linked to 100 closest road points [end points] to create an extent and perform the modelling operation in reasonably sized chunks].", 'maintainer': None, 'maintainer_email': None, 'metadata_created': '2025-09-11T14:42:20.726226', 'metadata_date': '2023-01-01T00:00', 'metadata_modified': '2025-09-11T14:43:39.479816', 'metadata_thumbnail': '', 'name': 'virtual_roads_for_the_bioenergy_atlas', 'notes': "Virtual roads representing theoretical paths [roads] starting every 1km apart (across South Africa) from areas where no roads exists to the closest road segment in South Africa's National Geo-spatial Information (NGI) 2019 road layer (http://www.ngi.gov.za) -- for use in the SAEON BioEnergy Atlas feasibility model. A cost surface using a digital elevation model (SRTM v3) [~30m] was used as the basis, with main water features (rivers and dams) and a slope threshold of 15 degrees removed as obstacles from the surface. Start points (derived from a 1km x 1km raster grid, and end points (the NGI road layer) rasterised at a 100m x 100m resolution, both using the StatsSA BSU grid projection ['+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location inputs. Non-NA raster values from these location inputs were converted to points (the centroid of each Non-NA pixel), then reprojected to the same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 – Geographic). A variable resolution window was used for modelling [based on 250 start points at a time, each linked to 100 closest road points [end points] to create an extent and perform the modelling operation in reasonably sized chunks]. The scikit-image python package was used to find the shortest path through each cost surface array cropped using the variable window extent, using a fully connected (i.e diagonal pixels) minimum cost path (MCU) algorithm. All outputs were merged to create a seamless Virtual roads layer with 1 051 696 individual paths covering South Africa.", 'num_resources': 1, 'num_tags': 1, 'organization': {'id': 'c4a18544-cded-4488-9f43-c02a1094ad39', 'name': 'saeon', 'title': 'NRF-SAEON', 'type': 'organization', 'description': 'The South African Environmental Observation Network (SAEON) is a long-term environmental observation and research facility of the National Research Foundation (NRF). SAEON’s three focus areas are environmental observation, data management and education outreach. The Department of Science, Technology and Innovation (DSTI) provides core funding for these activities. ', 'image_url': '2025-08-01-083136.289314LogoSAEON.png', 'created': '2025-05-26T07:57:06.135422', 'is_organization': True, 'approval_status': 'approved', 'state': 'active'}, 'owner_org': 'c4a18544-cded-4488-9f43-c02a1094ad39', 'private': False, 'reference_system_additional_info': 'Temporal extent: 2020-01-01/2021-01-01', 'spatial': '{"type": "Polygon", "coordinates": [[[32.773142, -34.421526], [18.418274, -34.421526], [18.418274, -22.771933], [32.773142, -22.771933], [32.773142, -34.421526]]]}', 'state': 'draft', 'title': 'virtual_roads_for_the_bioenergy_atlas', 'type': 'dataset', 'url': None, 'version': None, 'contact': [{'electronic_mail_address': 'm.pienaar@saeon.nrf.ac.za', 'individual_name': 'Marc Pienaar', 'position_name': 'Data Science Lead', 'role': 'point_of_contact'}], 'contact_information': [{'facsimile': '', 'voice': ''}], 'dataset_reference_date': [{'reference': '2023-01-01T00:00', 'reference_date_type': 1}], 'distribution_format': [{'name': 'Vector', 'version': '1.1'}], 'metadata_language_and_character_set': [{'dataset_character_set': 'utf-8', 'dataset_language': 'English', 'metadata_character_set': 'utf-8', 'metadata_language': 'English'}], 'online_resource': [{'application_profile': '', 'description': 2, 'linkage': 'http://doi.org/10.15493/BEA.DATA.250320-20', 'name': 'virtual_roads_for_the_bioenergy_atlas'}], 'resources': [{'cache_last_updated': None, 'cache_url': None, 'created': '2025-09-11T14:43:39.502682', 'description': '', 'format': 'SHP', 'format_version': '', 'hash': '', 'id': '21133e12-ea91-4955-866c-62ae4330e4ac', 'last_modified': None, 'metadata_modified': '2025-09-11T14:43:39.493080', 'mimetype': None, 'mimetype_inner': None, 'name': 'Virtual Roads for the BioEnergy Atlas', 'package_id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'position': 0, 'resource_type': 'other', 'size': None, 'state': 'active', 'upload_mode': 'single', 'url': 'https://repository.saeon.ac.za/index.php/s/AR3iz9wrn4YFmcb', 'url_type': None}], 'responsible_party': [{'electronic_mail_address': '', 'individual_name': 'South African Environmental Observation Network', 'position_name': 'SAEON', 'role': 'originator', 'website': 'https://catalogue.saeon.ac.za'}], 'responsible_party_contact_address': [{'administrative_area': '', 'city': '', 'delivery_point': '', 'postal_code': ''}], 'responsible_party_contact_info': [{'facsimile': '', 'voice': ''}], 'spatial_parameters': [{'equivalent_scale': '100x100', 'spatial_reference_system': 'EPSG: 4326', 'spatial_representation_type': '001'}], 'tags': [{'display_name': 'Imagery-Basemaps-Earth Cover', 'id': '8895be3b-53e6-43b4-b77b-571ea5ff5252', 'name': 'Imagery-Basemaps-Earth Cover', 'state': 'active', 'vocabulary_id': None}], 'topic_and_saeoss_themes': [{'iso_topic_category': 'imageryBaseMapsEarthCover'}], 'groups': [], 'relationships_as_subject': [], 'relationships_as_object': [], 'reference_date': '2023-01-01T00:00'}, 'actor': 'dseymour_19'}}]} |
| h |
{'redirect_to': <function redirect_to at 0x7fed431b4d30>, 'url': <function url at 0x7fed431b4e50>, 'get_site_protocol_and_host': <function get_site_protocol_and_host at 0x7fed431b4dc0>, 'url_for': <function url_for at 0x7fed431b6040>, 'url_for_static': <function url_for_static at 0x7fed431b61f0>, 'url_for_static_or_external': <function url_for_static_or_external at 0x7fed431b6280>, 'is_url': <function is_url at 0x7fed431b6310>, 'url_is_local': <function url_is_local at 0x7fed431b6430>, 'full_current_url': <function full_current_url at 0x7fed431b64c0>, 'current_url': <function current_url at 0x7fed431b6550>, 'lang': <function lang at 0x7fed431b65e0>, 'ckan_version': <function ckan_version at 0x7fed431b6670>, 'lang_native_name': <function lang_native_name at 0x7fed431b6700>, 'is_rtl_language': <function is_rtl_language at 0x7fed431b6790>, 'get_rtl_theme': <function get_rtl_theme at 0x7fed431b6820>, 'get_rtl_css': <function get_rtl_css at 0x7fed431b68b0>, 'flash_notice': <function flash_notice at 0x7fed431b6940>, 'flash_error': <function flash_error at 0x7fed431b6dc0>, 'flash_success': <function flash_success at 0x7fed431b6e50>, 'are_there_flash_messages': <function are_there_flash_messages at 0x7fed431b6ee0>, 'link_to': <function link_to at 0x7fed431373a0>, 'file': <function file at 0x7fed43137430>, 'submit': <function submit at 0x7fed431374c0>, 'nav_link': <function nav_link at 0x7fed43137550>, 'nav_named_link': <function nav_named_link at 0x7fed43137820>, 'subnav_link': <function subnav_link at 0x7fed43137940>, 'subnav_named_route': <function subnav_named_route at 0x7fed43137a60>, 'build_nav_main': <function build_pages_nav_main at 0x7fed2668ef70>, 'build_nav_icon': <function build_nav_icon at 0x7fed43137af0>, 'build_nav': <function build_nav at 0x7fed43137b80>, 'build_extra_admin_nav': <function build_extra_admin_nav at 0x7fed43137ca0>, 'default_group_type': <function default_group_type at 0x7fed43137dc0>, 'get_facet_items_dict': <function get_facet_items_dict at 0x7fed43137e50>, 'has_more_facets': <function has_more_facets at 0x7fed43137ee0>, 'unselected_facet_items': <function unselected_facet_items at 0x7fed43137f70>, 'get_facet_title': <function get_facet_title at 0x7fed43138160>, 'get_param_int': <function get_param_int at 0x7fed43138040>, 'sorted_extras': <function sorted_extras at 0x7fed43138280>, 'check_access': <function check_access at 0x7fed43138310>, 'get_action': <function get_action at 0x7fed431384c0>, 'linked_user': <function linked_user at 0x7fed431383a0>, 'group_name_to_title': <function group_name_to_title at 0x7fed43138550>, 'truncate': <function truncate at 0x7fed431385e0>, 'markdown_extract': <function markdown_extract at 0x7fed43138670>, 'icon_url': <function icon_url at 0x7fed43138700>, 'icon_html': <function icon_html at 0x7fed43138790>, 'icon': <function icon at 0x7fed43138820>, 'resource_icon': <function resource_icon at 0x7fed431388b0>, 'format_icon': <function format_icon at 0x7fed43138940>, 'dict_list_reduce': <function dict_list_reduce at 0x7fed431389d0>, 'gravatar': <function gravatar at 0x7fed43138a60>, 'sanitize_url': <function sanitize_url at 0x7fed43138af0>, 'user_image': <function user_image at 0x7fed43138b80>, 'pager_url': <function pager_url at 0x7fed43138c10>, 'get_page_number': <function get_page_number at 0x7fed43138ca0>, 'get_display_timezone': <function get_display_timezone at 0x7fed43138d30>, 'render_datetime': <function render_datetime at 0x7fed43138dc0>, 'date_str_to_datetime': <function date_str_to_datetime at 0x7fed43138e50>, 'parse_rfc_2822_date': <function parse_rfc_2822_date at 0x7fed43138ee0>, 'time_ago_from_timestamp': <function time_ago_from_timestamp at 0x7fed43138f70>, 'button_attr': <function button_attr at 0x7fed43139280>, 'dataset_display_name': <function dataset_display_name at 0x7fed43139310>, 'dataset_link': <function dataset_link at 0x7fed431393a0>, 'resource_display_name': <function resource_display_name at 0x7fed43139430>, 'resource_link': <function resource_link at 0x7fed431394c0>, 'tag_link': <function tag_link at 0x7fed43139550>, 'group_link': <function group_link at 0x7fed431395e0>, 'organization_link': <function organization_link at 0x7fed43139670>, 'dump_json': <function dump_json at 0x7fed43139700>, 'auto_log_message': <function auto_log_message at 0x7fed43139790>, 'activity_div': <function activity_div at 0x7fed43139820>, 'snippet': <function snippet at 0x7fed431398b0>, 'convert_to_dict': <function convert_to_dict at 0x7fed43139940>, 'follow_button': <function follow_button at 0x7fed431399d0>, 'follow_count': <function follow_count at 0x7fed43139a60>, 'add_url_param': <function add_url_param at 0x7fed43139b80>, 'remove_url_param': <function remove_url_param at 0x7fed43139c10>, 'include_resource': <function include_resource at 0x7fed43139ca0>, 'urls_for_resource': <function urls_for_resource at 0x7fed43139d30>, 'debug_inspect': <function debug_inspect at 0x7fed43139dc0>, 'popular': <function popular at 0x7fed43139e50>, 'groups_available': <function groups_available at 0x7fed43139ee0>, 'organizations_available': <function organizations_available at 0x7fed43139f70>, 'roles_translated': <function roles_translated at 0x7fed4313a040>, 'user_in_org_or_group': <function user_in_org_or_group at 0x7fed4313a0d0>, 'dashboard_activity_stream': <function dashboard_activity_stream at 0x7fed4313a160>, 'recently_changed_packages_activity_stream': <function recently_changed_packages_activity_stream at 0x7fed4313a1f0>, 'escape_js': <function escape_js at 0x7fed4313a280>, 'get_pkg_dict_extra': <function get_pkg_dict_extra at 0x7fed4313a310>, 'get_request_param': <function get_request_param at 0x7fed4313a3a0>, 'html_auto_link': <function html_auto_link at 0x7fed4313a430>, 'render_markdown': <function render_markdown at 0x7fed4313a4c0>, 'format_resource_items': <function format_resource_items at 0x7fed4313a550>, 'resource_preview': <function resource_preview at 0x7fed4313a5e0>, 'get_allowed_view_types': <function get_allowed_view_types at 0x7fed4313a670>, 'rendered_resource_view': <function rendered_resource_view at 0x7fed4313a700>, 'view_resource_url': <bound method ResourceProxy.view_resource_url of <Plugin ResourceProxy 'resource_proxy'>>, 'resource_view_is_filterable': <function resource_view_is_filterable at 0x7fed4313a820>, 'resource_view_get_fields': <function resource_view_get_fields at 0x7fed4313a8b0>, 'resource_view_is_iframed': <function resource_view_is_iframed at 0x7fed4313a940>, 'resource_view_icon': <function resource_view_icon at 0x7fed4313a9d0>, 'resource_view_display_preview': <function resource_view_display_preview at 0x7fed4313aa60>, 'resource_view_full_page': <function resource_view_full_page at 0x7fed4313aaf0>, 'remove_linebreaks': <function remove_linebreaks at 0x7fed4313ab80>, 'list_dict_filter': <function list_dict_filter at 0x7fed4313ac10>, 'SI_number_span': <function SI_number_span at 0x7fed4313aca0>, 'new_activities': <function new_activities at 0x7fed4313ad30>, 'uploads_enabled': <function uploads_enabled at 0x7fed4313adc0>, 'get_featured_organizations': <function get_featured_organizations at 0x7fed4313ae50>, 'get_featured_groups': <function get_featured_groups at 0x7fed4313aee0>, 'featured_group_org': <function featured_group_org at 0x7fed4313af70>, 'get_site_statistics': <function get_site_statistics at 0x7fed4313b040>, 'resource_formats': <function resource_formats at 0x7fed4313b0d0>, 'unified_resource_format': <function unified_resource_format at 0x7fed4313b160>, 'check_config_permission': <function check_config_permission at 0x7fed4313b1f0>, 'get_organization': <function get_organization at 0x7fed4313b280>, 'license_options': <function license_options at 0x7fed4313b310>, 'get_translated': <function get_translated at 0x7fed4313b3a0>, 'facets': <function facets at 0x7fed4313b430>, 'mail_to': <function mail_to at 0x7fed4313b4c0>, 'radio': <function radio at 0x7fed4313b550>, 'clean_html': <function clean_html at 0x7fed4313b5e0>, 'flash': <ckan.lib.helpers._Flash object at 0x7fed431a3970>, 'localised_number': <function localised_number at 0x7fed443eb310>, 'localised_SI_number': <function localised_SI_number at 0x7fed443eb430>, 'localised_nice_date': <function localised_nice_date at 0x7fed443eb1f0>, 'localised_filesize': <function localised_filesize at 0x7fed443eb3a0>, 'get_available_locales': <function get_available_locales at 0x7fed4553dca0>, 'get_locales_dict': <function get_locales_dict at 0x7fed4553dc10>, 'literal': <class 'ckan.lib.helpers.literal'>, 'asbool': <function asbool at 0x7fed45642ee0>, 'urlencode': <function urlencode at 0x7fed47203ca0>, 'include_asset': <function include_asset at 0x7fed431b4820>, 'render_assets': <function render_assets at 0x7fed431b4940>, 'sanitize_id': <function sanitize_id at 0x7fed4313b700>, 'compare_pkg_dicts': <function compare_pkg_dicts at 0x7fed4313b790>, 'activity_list_select': <function activity_list_select at 0x7fed4313b820>, 'get_collaborators': <function get_collaborators at 0x7fed4313b8b0>, 'can_update_owner_org': <function can_update_owner_org at 0x7fed4313b940>, 'check_ckan_version': <function check_ckan_version at 0x7fed4313b9d0>, 'csrf_input': <function csrf_input at 0x7fed4313ba60>, 'saeoss_default_spatial_search_extent': functools.partial(<function get_default_spatial_search_extent at 0x7fed25fb3dc0>, 0.001), 'default_bounding_box': <function get_default_bounding_box at 0x7fed25fb3e50>, 'convert_geojson_to_bounding_box': <function convert_geojson_to_bbox at 0x7fed25fb3ee0>, 'extent_to_bbox': <function convert_string_extent_to_bbox at 0x7fed25fb3f70>, 'saeoss_themes': <function get_saeoss_themes at 0x7fed25ffb4c0>, 'iso_topic_categories': <function get_iso_topic_categories at 0x7fed25fb3ca0>, 'get_iso_topic_display': <function get_iso_topic_display at 0x7fed25fb3d30>, 'saeoss_show_version': <function helper_show_version at 0x7fed25f8b040>, 'user_is_org_member': <function user_is_org_member at 0x7fed25f8b0d0>, 'org_member_list': <function org_member_list at 0x7fed25f8b160>, 'user_is_staff_member': <function user_is_staff_member at 0x7fed25f8b1f0>, 'get_featured_datasets': <function get_featured_datasets at 0x7fed25f8b310>, 'get_recently_modified_datasets': <function get_recently_modified_datasets at 0x7fed25f8b430>, 'get_all_datasets_count': <function get_all_datasets_count at 0x7fed25f8b4c0>, 'saeoss_org_memberships': <function get_org_memberships at 0x7fed25f8b790>, 'mod_scheming_flatten_subfield': <function mod_scheming_flatten_subfield at 0x7fed25f8b820>, 'get_today_date': <function get_today_date at 0x7fed25f8b940>, 'get_maintenance_custom_other_field_data': <function get_maintenance_custom_other_field_data at 0x7fed25f8b8b0>, 'get_release': <function get_current_release at 0x7fed25f8b9d0>, 'get_saved_searches': <function get_saved_searches at 0x7fed25f8baf0>, 'get_recent_news': <function get_recent_news at 0x7fed25f8bd30>, 'get_featured_datasets_count': <function get_featured_datasets_count at 0x7fed25f8b3a0>, 'get_user_name': <function get_user_name at 0x7fed25f8bb80>, 'get_user_name_from_url': <function get_user_name_from_url at 0x7fed25f8bca0>, 'get_user_id': <function get_user_id at 0x7fed25f8bc10>, 'get_seo_metatags': <function get_seo_metatags at 0x7fed25f8bdc0>, 'get_datasets_thumbnail': <function get_datasets_thumbnail at 0x7fed25f8b670>, 'get_year': <function get_year at 0x7fed25f8be50>, 'get_user_dashboard_packages': <function get_user_dashboard_packages at 0x7fed25f8bee0>, 'get_org_public_records_count': <function get_org_public_records_count at 0x7fed25f8b5e0>, 'group_package_count': <function group_package_count at 0x7fed25f8b550>, 'render_content': <function render_content at 0x7fed266ab5e0>, 'get_wysiwyg_editor': <function get_wysiwyg_editor at 0x7fed266b6b80>, 'get_recent_blog_posts': <function get_recent_blog_posts at 0x7fed266b6c10>, 'pages_get_plus_icon': <function get_plus_icon at 0x7fed266b6ca0>, 'scheming_language_text': <function scheming_language_text at 0x7fed2676fd30>, 'scheming_field_choices': <function scheming_field_choices at 0x7fed2676fdc0>, 'scheming_choices_label': <function scheming_choices_label at 0x7fed2676fe50>, 'scheming_datastore_choices': <function scheming_datastore_choices at 0x7fed2676fee0>, 'scheming_field_required': <function scheming_field_required at 0x7fed2676fb80>, 'scheming_dataset_schemas': <function scheming_dataset_schemas at 0x7fed2676ff70>, 'scheming_get_presets': <function scheming_get_presets at 0x7fed2676fc10>, 'scheming_get_preset': <function scheming_get_preset at 0x7fed266e4040>, 'scheming_get_dataset_schema': <function scheming_get_dataset_schema at 0x7fed266e40d0>, 'scheming_get_dataset_form_pages': <function scheming_get_dataset_form_pages at 0x7fed266e4160>, 'scheming_group_schemas': <function scheming_group_schemas at 0x7fed266e41f0>, 'scheming_get_group_schema': <function scheming_get_group_schema at 0x7fed266e4280>, 'scheming_organization_schemas': <function scheming_organization_schemas at 0x7fed266e4310>, 'scheming_get_organization_schema': <function scheming_get_organization_schema at 0x7fed266e43a0>, 'scheming_get_schema': <function scheming_get_schema at 0x7fed266e4430>, 'scheming_field_by_name': <function scheming_field_by_name at 0x7fed266e44c0>, 'scheming_datetime_to_utc': <function scheming_datetime_to_utc at 0x7fed266e45e0>, 'scheming_datetime_to_tz': <function scheming_datetime_to_tz at 0x7fed266e4670>, 'scheming_get_timezones': <function scheming_get_timezones at 0x7fed266e4700>, 'scheming_display_json_value': <function scheming_display_json_value at 0x7fed266e4790>, 'scheming_render_from_string': <function scheming_render_from_string at 0x7fed266e4820>, 'scheming_flatten_subfield': <function scheming_flatten_subfield at 0x7fed266e48b0>, 'get_common_map_config_shp': <function get_common_map_config at 0x7fed2674c670>, 'get_shapefile_viewer_config': <function get_shapefile_viewer_config at 0x7fed2674c700>, 'get_common_map_config_wmts': <function get_common_map_config at 0x7fed2674c670>, 'get_common_map_config_geojson': <function get_common_map_config at 0x7fed2674c670>, 'geojson_get_max_file_size': <function get_max_file_size at 0x7fed2674c790>, 'get_common_map_config_geoviews': <function get_common_map_config at 0x7fed2674c670>, 'get_openlayers_viewer_config': <function get_openlayers_viewer_config at 0x7fed2674c820>, 'get_reference_date': <function get_reference_date at 0x7fed1c75baf0>, 'get_responsible_party': <function get_responsible_party at 0x7fed1c75bb80>, 'get_common_map_config': <function get_common_map_config at 0x7fed1c75bc10>, 'package_list_for_source': <function package_list_for_source at 0x7fed1c75be50>, 'package_count_for_source': <function package_count_for_source at 0x7fed1c75bee0>, 'harvesters_info': <function harvesters_info at 0x7fed1c75bf70>, 'harvester_types': <function harvester_types at 0x7fed1c74e040>, 'harvest_frequencies': <function harvest_frequencies at 0x7fed1c74e0d0>, 'link_for_harvest_object': <function link_for_harvest_object at 0x7fed1c74e160>, 'harvest_source_extra_fields': <function harvest_source_extra_fields at 0x7fed1c74e1f0>, 'bootstrap_version': <function bootstrap_version at 0x7fed1c74e280>, 'get_harvest_source': <function get_harvest_source at 0x7fed1c75bdc0>, 'get_map_config': <function get_mapview_config at 0x7fed40fb1550>, 'get_dataproxy_url': <function get_dataproxy_url at 0x7fed40fb15e0>} |
| pkg_dict |
{'author': None, 'author_email': None, 'creator_user_id': '64e47517-dce0-4a13-9ab7-ef1cfcd1d892', 'doi': '10.15493/BEA.DATA.250320-20', 'featured': 'false', 'id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'isopen': False, 'license_id': None, 'license_title': None, 'lineage_statement': "A cost surface using a digital elevation model (SRTM v3) [~30m] was used as the basis, with main water features (rivers and dams) and a slope threshold of 15 degrees removed as obstacles from the surface. Start points (derived from a 1km x 1km raster grid, and end points (the NGI road layer) rasterised at a 100m x 100m resolution, both using the StatsSA BSU grid projection ['+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location inputs. Non-NA raster values from these location inputs were converted to points (the centroid of each Non-NA pixel), then reprojected to the same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 – Geographic). A variable resolution window was used for modelling [based on 250 start points at a time, each linked to 100 closest road points [end points] to create an extent and perform the modelling operation in reasonably sized chunks].", 'maintainer': None, 'maintainer_email': None, 'metadata_created': '2025-09-11T14:42:20.726226', 'metadata_date': '2023-01-01T00:00', 'metadata_modified': '2025-09-11T14:43:53.300875', 'metadata_thumbnail': '', 'name': 'virtual_roads_for_the_bioenergy_atlas', 'notes': "Virtual roads representing theoretical paths [roads] starting every 1km apart (across South Africa) from areas where no roads exists to the closest road segment in South Africa's National Geo-spatial Information (NGI) 2019 road layer (http://www.ngi.gov.za) -- for use in the SAEON BioEnergy Atlas feasibility model. A cost surface using a digital elevation model (SRTM v3) [~30m] was used as the basis, with main water features (rivers and dams) and a slope threshold of 15 degrees removed as obstacles from the surface. Start points (derived from a 1km x 1km raster grid, and end points (the NGI road layer) rasterised at a 100m x 100m resolution, both using the StatsSA BSU grid projection ['+proj=aea +lat_1=-22 +lat_2=-38 +lat_0=-30 +lon_0=25 +x_0=1400000 +y_0=1300000 +datum=WGS84 +units=m +no_defs]) were used as location inputs. Non-NA raster values from these location inputs were converted to points (the centroid of each Non-NA pixel), then reprojected to the same resolution as the cost surface (e.g. EPSG:4326 - WGS 84 – Geographic). A variable resolution window was used for modelling [based on 250 start points at a time, each linked to 100 closest road points [end points] to create an extent and perform the modelling operation in reasonably sized chunks]. The scikit-image python package was used to find the shortest path through each cost surface array cropped using the variable window extent, using a fully connected (i.e diagonal pixels) minimum cost path (MCU) algorithm. All outputs were merged to create a seamless Virtual roads layer with 1 051 696 individual paths covering South Africa.", 'num_resources': 1, 'num_tags': 1, 'organization': {'id': 'c4a18544-cded-4488-9f43-c02a1094ad39', 'name': 'saeon', 'title': 'NRF-SAEON', 'type': 'organization', 'description': 'The South African Environmental Observation Network (SAEON) is a long-term environmental observation and research facility of the National Research Foundation (NRF). SAEON’s three focus areas are environmental observation, data management and education outreach. The Department of Science, Technology and Innovation (DSTI) provides core funding for these activities. ', 'image_url': '2025-08-01-083136.289314LogoSAEON.png', 'created': '2025-05-26T07:57:06.135422', 'is_organization': True, 'approval_status': 'approved', 'state': 'active'}, 'owner_org': 'c4a18544-cded-4488-9f43-c02a1094ad39', 'private': False, 'reference_system_additional_info': 'Temporal extent: 2020-01-01/2021-01-01', 'spatial': '{"type": "Polygon", "coordinates": [[[18.418274, -34.421526], [32.773142, -34.421526], [32.773142, -22.771933], [18.418274, -22.771933], [18.418274, -34.421526]]]}', 'state': 'active', 'title': 'Virtual Roads for the BioEnergy Atlas', 'type': 'dataset', 'url': None, 'version': None, 'contact': [{'electronic_mail_address': 'm.pienaar@saeon.nrf.ac.za', 'individual_name': 'Marc Pienaar', 'position_name': 'Data Science Lead', 'role': 'point_of_contact'}], 'contact_information': [{'facsimile': '', 'voice': ''}], 'dataset_reference_date': [{'reference': '2023-01-01T00:00', 'reference_date_type': 1}], 'distribution_format': [{'name': 'Vector', 'version': '1.1'}], 'metadata_language_and_character_set': [{'dataset_character_set': 'utf-8', 'dataset_language': 'English', 'metadata_character_set': 'utf-8', 'metadata_language': 'English'}], 'metadata_standard': [{'name': 'SANS 1878-1:2011', 'version': '1.1'}], 'online_resource': [{'application_profile': '', 'description': 2, 'linkage': 'http://doi.org/10.15493/BEA.DATA.250320-20', 'name': 'virtual_roads_for_the_bioenergy_atlas'}], 'resources': [{'cache_last_updated': None, 'cache_url': None, 'created': '2025-09-11T14:43:39.502682', 'description': '', 'format': 'SHP', 'format_version': '', 'hash': '', 'id': '21133e12-ea91-4955-866c-62ae4330e4ac', 'last_modified': None, 'metadata_modified': '2025-09-11T14:43:39.493080', 'mimetype': None, 'mimetype_inner': None, 'name': 'Virtual Roads for the BioEnergy Atlas', 'package_id': '695aa705-9c99-41b3-983b-6bbc25d36d45', 'position': 0, 'resource_type': 'other', 'size': None, 'state': 'active', 'upload_mode': 'single', 'url': 'https://repository.saeon.ac.za/index.php/s/AR3iz9wrn4YFmcb', 'url_type': None}], 'responsible_party': [{'electronic_mail_address': '', 'individual_name': 'South African Environmental Observation Network', 'position_name': 'SAEON', 'role': 'originator', 'website': 'https://catalogue.saeon.ac.za'}], 'responsible_party_contact_address': [{'administrative_area': '', 'city': '', 'delivery_point': '', 'postal_code': ''}], 'responsible_party_contact_info': [{'facsimile': '', 'voice': ''}], 'spatial_parameters': [{'equivalent_scale': '100x100', 'spatial_reference_system': 'EPSG: 4326', 'spatial_representation_type': '001'}], 'tags': [{'display_name': 'Imagery-Basemaps-Earth Cover', 'id': '8895be3b-53e6-43b4-b77b-571ea5ff5252', 'name': 'Imagery-Basemaps-Earth Cover', 'state': 'active', 'vocabulary_id': None}], 'topic_and_saeoss_themes': [{'iso_topic_category': 'imageryBaseMapsEarthCover'}], 'groups': [], 'relationships_as_subject': [], 'relationships_as_object': [], 'reference_date': '2023-01-01T00:00'} |