I have global shp files of basins (polygons) and rivers (lines). I wish to calculate a measure of stream length per basin area. It should be comparable across world regions, e.g. I wish to compare basins in China to basins in Brazil.

I wonder if using $length and $area in a geographic WGS84 reference system to calculate the ratio as described above is comparable between regions?

I have made an attempt to compare to remote regions using the following workflow:

For each region:

A) Use spatial join to get sum(river.length) in each basin.

B) Calculate ratio = sum(river.length) / $area

C) Re-project river / basin data to corresponding UTM and repeat A - B

I expected to get ratio == ratio.UTM for each basin, yet the results show non-linear differences between them. See results below (red indicates negative values):


Following this example I became skeptic; now i'm wondering if I can simply use the data referenced to WGS 84 to calculate the ratio, or should I re project it beforehand? Note that projecting the data will be time consuming and complex, since it requires to slice the data according to UTM zones.

I am using QGIS 2.14, and may switch to arcmap 10.3, or grass 7. I have read Measure areas, lenghts in specific regions (Australia, Sout East Asia), but answers given there do not satisfy my query.

  • It's partially going to depend on where the basin falls within the UTM zone. You could have the same "size" basins in lat/lon (at same latitudes, but different longitudes). If one is at the center of its UTM zone, but the other one is at the edge, that will give different lengths.
    – mkennedy
    Jul 14 '16 at 22:05
  • I still need some automated way to process a global dataset; is using WGS 84 for this purpose makes any sense? is it comparable?
    – dof1985
    Jul 15 '16 at 15:30

This answer on a question with a similar theme may provide an explanation for your observation:

..since your data is in Decimal Degrees, you will not be able to perform a linear calculation for the true area of your raster cells. Since the lines of Longitude converge at the Poles, the distance represented by 1 degree of Longitude decreases as you move north or south from the equator. You need to be using a projected coordinate system that preserves the area of your data. This will ensure that your area calculation based on the raster will be accurate to the ground area.

My first thought when I read your question was that using decimal degree measures to compare linear and areal values would not be sound, but admittedly, off the top of my head, I couldn't explain why. However @GetSpatial's answer makes sense of this.

  • I would have accepted this answer if I was just interested in comparing area or length between different locations. However when comparing length / area ratio I am not quite convinced that it fully explains it. As you can see, I've seen differences within and between regions, implying that length and area change differently when projected if the same geometry is considered.
    – dof1985
    Jul 14 '16 at 19:00
  • ..fair enough. But it's no mystery that length and area change differently when units are projected. Map traits that can be preserved/changed by projections are shape, distance, area, and direction. But unfortunately, as noted here: While we have map projections that can preserve areas or form everywhere on the map, there isn’t one that can preserve distances everywhere.
    – elrobis
    Jul 14 '16 at 21:04
  • I get it. Still what would be more appropriate to use a geographic reference system or a set of UTMs?
    – dof1985
    Jul 15 '16 at 15:28
  • Might it be better to use regional projections relative to Brazil and China, respectively? If you're interested in that approach, you could consider using this one for Brazil, and this one for China. Both are equal area conic, so at least your basin areas will be clean, but you'd have to accept some slosh in the linear measures.
    – elrobis
    Jul 15 '16 at 18:05
  • 1
    If you're obsessed with trying to minimize distortion of the linear measurements, you could experiment with a custom azimuthal projection for each river, where the azimuthal control point is near to the midpoint of your river polyline.This would be long winded and tedious using a desktop GIS, but if you push all your data into a database like PostGRESql/PostGIS, you would blaze through it in no time because you'd be able to re-use all your SQL commands from the first river you processed.
    – elrobis
    Jul 15 '16 at 18:12

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.