<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Python &amp;quot;Ruggedness&amp;quot; Analysis Code in Python Questions</title>
    <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677851#M52512</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Rachel,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You could also try my script for a vector-based ruggedness measure with seems to decouple slope from ruggedness better than TRI. The script for ArcGIS 9.x and 10.x can be found here: &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=F65FF927-1422-2418-A02A-EE72574A8C26"&gt;http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=F65FF927-1422-2418-A02A-EE72574A8C26&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope it helps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mark Sappington&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GIS Specialist&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Lake Mead National Recreation Area&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="mailto:mark_sappington@nps.gov"&gt;mark_sappington@nps.gov&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Mon, 18 Jul 2011 22:22:53 GMT</pubDate>
    <dc:creator>MarkSappington</dc:creator>
    <dc:date>2011-07-18T22:22:53Z</dc:date>
    <item>
      <title>Python &amp;quot;Ruggedness&amp;quot; Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677847#M52508</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I need a code which essentially... "The terrain ruggedness index (TRI) is a measurement developed by Riley, et al. (1999) to express the amount of elevation difference between adjacent cells of a digital elevation grid. The process essentially calculates the difference in elevation values from a center cell and the eight cells immediately surrounding it. Then it squares each of the eight elevation difference values to make them all positive and averages the squares. The terrain ruggedness index is then derived by taking the square root of this average, and corresponds to average elevation change between any point on a grid and it???s surrounding area."&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;All I could figure out was....&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt; ssdiff = ( ( sqr ( "in_elev"(0,0) - "in_elev"(-1,-1) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(0,-1) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(1,-1) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(1,0) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(1,1) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(0,1) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(-1,1) ) ) + ( sqr ( "in_elev"(0,0) - "in_elev"(-1,0) ) ) )&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;But how do I even try and translate it onto Python and into ArcMap. I have never tried to breach the ArcMap/Python boundary. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Please HELP!&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks, Rachel&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 May 2011 15:22:20 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677847#M52508</guid>
      <dc:creator>RachelRodriguez</dc:creator>
      <dc:date>2011-05-26T15:22:20Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677848#M52509</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The sample you code you posted uses something called "DOCELL" notation (sometimes called neighborhood notation) to refer to neighboring cells using relative coordinates (for example, 1,-1). Unfortunately, ESRI still has not ported that functionality in ArcGIS. However, it is currently still supported in GRID via Workstation ArcInfo, so you could actually just run your code as is via Workstation. There are some pretty simple ways to do that via Python even (that is call grid.exe through Python).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;This probably isn't a very good "beginner" Python project, but there are some ways of doing this in ArcGIS/Python:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;1. Load the data into a Python dictionary or numpy array and write your own function (this would require some Python knowledge for sure.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;2. A simpler idea is to make 8 separate grids that are each "shifted" in one of the eight directions. So for example, produce a grid shifted one pixel to the north, another shifted 1 pixel to the NE, another shifted to the E, etc. Use the "Shift" tool in ArcToolbox to do this. Name each shifted grid according to the direction of the shift - so you will have grids n, ne, e, se, s, sw, w, nw - also name your original non-shifted grid c (for center). Then use the Combine tool to overlay all the grids together. Hopefully your grids aren't too big; otherwise this might not work due to too many unique values in the combo grid... You may need to adjust&amp;nbsp; the max raster attribute limit in the AdvancedArcMapSettings.exe registry editor to accomplish this. Anyway, PRESTO! In the output combo grid there will then be fields for each of the direction grids (the values representing the elevations of each cardinal direction relative to "c"). Add a new field "TRI" and just calc it according to the TRI equation.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 26 May 2011 17:03:30 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677848#M52509</guid>
      <dc:creator>ChrisSnyder</dc:creator>
      <dc:date>2011-05-26T17:03:30Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677849#M52510</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;BLOCKQUOTE class="jive-quote"&gt;The sample you code you posted uses something called "DOCELL" notation (sometimes called neighborhood notation) to refer to neighboring cells using relative coordinates (for example, 1,-1). Unfortunately, ESRI still has not ported that functionality in ArcGIS. &lt;/BLOCKQUOTE&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Just to set the record straight, the "[,]" neighborhood notation is supported (and is much more efficient) &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;outside&lt;/SPAN&gt;&lt;SPAN&gt; of DOCELL blocks in ArcInfo GRID. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;There are no plans I've heard to support neighborhood notation in ArcGIS; members of the raster team have also pointed me to raster to numpy array to accomplish this task. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN style="font-style:italic;"&gt;(Are ya listening, your rasteroid guys and gals in Redlands? IMHO going to numpy is a bit kludgy to access what I feel is basic raster modeling functionality. Sure would be nice if you supported neighborhood notation as a method on the raster object, say: "myRaster.nbr(1,1)" or something like that.) &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I just thought of another approach outside of shifting grids around - which is to calculate focal sums using custom kernel neighborhoods to access those neighborhood cells. This has the potential of performing better than using the shift tool, which most certainly would involve copying the whole grid to access neighborhood cell.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If you have access to ArcInfo GRID I'd look for an old person to help you do it there. &lt;span class="lia-unicode-emoji" title=":slightly_smiling_face:"&gt;🙂&lt;/span&gt;&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 May 2011 14:29:27 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677849#M52510</guid>
      <dc:creator>curtvprice</dc:creator>
      <dc:date>2011-05-30T14:29:27Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677850#M52511</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;The Riley et. al., (1999) index is merely unscaled variance. You can calculate an approximation using map algebra. Conveniently, this is scalable without modifying the neighborhood notation. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Variance in a 3x3 window&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;roughness = SQR( FOCALSTDV( dem, RECTANGLE, 3, 3 ) )&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 30 May 2011 14:47:52 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677850#M52511</guid>
      <dc:creator>JeffreyEvans</dc:creator>
      <dc:date>2011-05-30T14:47:52Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677851#M52512</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi Rachel,&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;You could also try my script for a vector-based ruggedness measure with seems to decouple slope from ruggedness better than TRI. The script for ArcGIS 9.x and 10.x can be found here: &lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=F65FF927-1422-2418-A02A-EE72574A8C26"&gt;http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=F65FF927-1422-2418-A02A-EE72574A8C26&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Hope it helps.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Mark Sappington&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;GIS Specialist&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Lake Mead National Recreation Area&lt;/SPAN&gt;&lt;BR /&gt;&lt;A href="mailto:mark_sappington@nps.gov"&gt;mark_sappington@nps.gov&lt;/A&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Mon, 18 Jul 2011 22:22:53 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677851#M52512</guid>
      <dc:creator>MarkSappington</dc:creator>
      <dc:date>2011-07-18T22:22:53Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677852#M52513</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I am trying to figure out the same problem as you, Rachel.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I looked into Jeffrey's post a little further because it seemed like a simple way to solve the TRI, but I have some questions about it: &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If the TRI is: SQRT ((c-1)^2 + (c-2)^2 + (c-3)^2 + (c-4)^2 + (c-5)^2 + (c-6)^2 + (c-7)^2 + (c-8)^2)), where c is the focal centre within the 3x3 neighbourhood.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;And standard deviation of a dataset is the &lt;/SPAN&gt;&lt;SPAN style="font-style:italic;"&gt;square root&lt;/SPAN&gt;&lt;SPAN&gt; of the variance, and variance is the expected value of the squared difference ( variance(x) = E((x-u)^2) ).&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Then wouldn't TRI = (STDV[dem], rectangle, 3, 3)?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The difference from Jeffrey's is the lack of square rooting the equation, which I think is not necessary since the standard deviation already calculates the square root of the sum of the squared differences within the 3x3 grid.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;If this is in fact the case, then the TRI can be calculated by using the Focal Statistics tool and solving with the standard deviation function within a 3x3 rectangle.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I am not sure if this I am correct, so any feedback is welcome.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 16:50:03 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677852#M52513</guid>
      <dc:creator>TaylerHamilton</dc:creator>
      <dc:date>2011-07-19T16:50:03Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677853#M52514</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;In grid algebra SQR is the square not the square root. The square of the standard deviation is the variance. Since the original TRI is only the sum of the squared deviations it is unscaled (not corrected by n-1) variance. So calculating a focal standard deviation and then taking the square of it returns an approximation of the TRI.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 17:02:35 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677853#M52514</guid>
      <dc:creator>JeffreyEvans</dc:creator>
      <dc:date>2011-07-19T17:02:35Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677854#M52515</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;My mistake, I meant square, not square root. The difference between the way I saw it and your equation was the lack of squaring after applying the standard deviation in mine.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I still don't understand how squaring it will scale the TRI. What does the approximation of the TRI mean?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thank you for your help!!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 17:17:59 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677854#M52515</guid>
      <dc:creator>TaylerHamilton</dc:creator>
      <dc:date>2011-07-19T17:17:59Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677855#M52516</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;OK, so the original Riley et. al. (1999) paper does not take the square root, it is the sum of the squared deviations. Taking the square root of the TRI was an unpublished modification added later. If you take the sum of the squared deviations and divide by n-1 you get the sample variance. If you look at the code that the original poster pulled from the TRI AML you will notice that it does not take the square root. If you square of a focal standard deviation you get something quite similar to the original TRI (same resulting distributional shape with different values, thus an approximation). If you want the modification then just use the focal standard deviation. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;The advantage of using the focal standard deviation (squared or not) is that, by changing the size of the focal window, the TRI becomes scalable (spatially). It is a bit erroneous to assume that a organism or process is going to respond to a scale represented only by a 3x3 window. This is something that should be tested across spatial scales. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Clear as mud, right?&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 20:22:23 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677855#M52516</guid>
      <dc:creator>JeffreyEvans</dc:creator>
      <dc:date>2011-07-19T20:22:23Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677856#M52517</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Awesome! Thanks for your help, that makes things more understandable.&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 21:22:44 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677856#M52517</guid>
      <dc:creator>TaylerHamilton</dc:creator>
      <dc:date>2011-07-19T21:22:44Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677857#M52518</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;After reading J. Evans' post, I'm not convinced this is entirely correct, but here is some code (see attached) that will at least demonstrate one way to deal with moving windows using python. &lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Chris&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 19 Jul 2011 22:56:31 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677857#M52518</guid>
      <dc:creator>ChrisBater</dc:creator>
      <dc:date>2011-07-19T22:56:31Z</dc:date>
    </item>
    <item>
      <title>Re: Python "Ruggedness" Analysis Code</title>
      <link>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677858#M52519</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;I have returned to this thread looking for a way to calculate VRM.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I tried your ArcScript, Mark Sappington, and it worked wonders. I was using an open source GIS that had a tool for VRM built into it, but for some reason the program decided to stop working for that tool.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;I highly suggest this tool (&lt;/SPAN&gt;&lt;A href="http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=F65FF927-1422-2418-A02A-EE72574A8C26"&gt;http://resources.arcgis.com/gallery/file/geoprocessing/details?entryID=F65FF927-1422-2418-A02A-EE72574A8C26&lt;/A&gt;&lt;SPAN&gt;) as mentioned by Mark.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Thanks for everyone's help!&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Sun, 24 Jun 2012 01:15:17 GMT</pubDate>
      <guid>https://community.esri.com/t5/python-questions/python-amp-quot-ruggedness-amp-quot-analysis-code/m-p/677858#M52519</guid>
      <dc:creator>TaylerHamilton</dc:creator>
      <dc:date>2012-06-24T01:15:17Z</dc:date>
    </item>
  </channel>
</rss>

