I have downloaded some glacier outlines from the GLIMS database (http://www.glims.org/maps/glims) as a SHP file.

This contains multi-temporal data, that is, more than one outline per glacier (more info on https://www.glims.org/Workshops/2017_vienna/glims_rgi_update_at_egu2017_splinter_meeting.pdf); outlines are grouped by glacier.

How can I extract a "snapshot" of a particular time (especially the most recent version in each outline group, knowing that different groups have different timestamps), if possible in QGIS? It is done in the presentation I have linked above, but with no explanation.

Sample data uploaded here (file glims_polygons): https://ufile.io/rvotq

  • 1
    You could filter the data (gis.stackexchange.com/q/25963/81764), or visualize it using a categorized or rule-based symbology (qgistutorials.com/en/docs/basic_vector_styling.html). – csk Nov 5 '18 at 15:20
  • Thank you for your answer, in fact I have been trying to filter those quite a lot, but I don't manage to filter them in one step so to get the most recent outline available for all of them, only for one group at a time, and I have dozens to process! – user975296 Nov 5 '18 at 18:40

Right Click on Layer/Filter data

Add Expression: glac_name= "Your glac_name in the table" and src_date = "Date from the table" this result a unique glacier and one source date.

  • Thank you for your answer, but I would like to do this in one step for all the glaciers I have downloaded, not for just one. That's exactly my problem: I can process one outline group at a time, but I have several dozens! – user975296 Nov 5 '18 at 18:38

Use the Field Calculator to create a new field as follows:

  • output field name: latest_dt
  • output field type: text (string)
  • output field length: 25
  • expression: maximum( "release_dt", "glac_id")

The new field will now store the most recent date for each unique glacier.

You can use this field to test whether each glacier is the most recent by comparing the "latest_dt" value to the "release_dt" value.

"release_dt" = "latest_dt"

This can be used in a filter or a rule-based style.

  • Thank you, that works very well although (possibly due to mappers' inaccuracy) some large outlines just disappear, because of small glacier bits added later. I guess I have to deal with this problem manually. – user975296 Nov 6 '18 at 21:43
  • A batch solution may be possible to that problem if you can find some similarity between the glacier bits that go missing. Maybe selecting all glaciers less than a certain size. Post a separate question if you want help with it. – csk Nov 6 '18 at 21:49

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.