2017-01-16 3 views
1

Ich versuche herauszufinden, wie in AWS XML-Metadatendateien gesucht wird, um zu überprüfen, ob eine bestimmte Bildfliese von Landsat oder Sentinel meine Anforderungen erfüllt.Such-URLs mit einem Standardformat

die Dateien für diese Datenprodukte folgen einem Standard-URL-Format:

http://sentinel-s2-l1c.s3.amazonaws.com/tiles/10/S/DG/2015/12/7/0/metadata.xml

das Format Verweise auf das UTM-Referenzsystem enthält und das Datum der, dass das Bild aufgenommen wurde, was würde Ich mag zu tun ist, um durch die verfügbaren URLs für eine bestimmte Kachel so alle verfügbaren .xml url

http://sentinel-s2-l1c.s3.amazonaws.com/tiles/10/S/DG/2015/../../0/metadata.xml

so in dem obigen Beispiel suchen 10 ist die UTM-Zone, S die lati ist tude und DG ist die spezifische Kachel, also würde ich gerne eine Möglichkeit finden, alle metadata.xml-Dateien für eine bestimmte Kachel in einem bestimmten Jahr zu finden und zu lesen.

Ich habe wirklich keine Ahnung, wie dies zu gehen, aber ich habe einige Erfahrung mit Python und Java jede Hilfe oder Ressourcen zu betrachten wäre sehr

Antwort

0

Betrachten wir ein zweifaches Verfahren geschätzt werden. Eine, die URLs prüft und, falls sie gültig ist, lädt jedes XML herunter und löscht dann jeden Anfragefehler XMLS. Verwenden Sie Pythons eingebautes os Modul für die Dateisystemarbeit.

Hinweis: unter Skriptdateien in einem vorhandenen Unterordner speichern genannt AWS relativ Py-Skript ausgeführt wird. Löschschleife entfernt nur Ordner in diesem Unterordner:

import os 
import requests as rq 

baseurl = 'http://sentinel-s2-l1c.s3.amazonaws.com/tiles/10/S/DG/2015/{}/{}/0/metadata.xml' 

# ITERATE THROUGH ALL MONTH/DAY COMBINATIONS 
for i in [(m, d) for m in range(1,13) for d in range(1,31)]:  

    if request.status_code == 200: 
     rqpage = rq.get(baseurl.format(i[0], i[1])) 
     rqcontent = rqpage.content 

     with open('AWS/{}-{}-{}_metadata.xml'.format('2015', i[0], i[1]), 'wb') as f: 
      f.write(rqcontent)   

# REMOVE BY SIZE ERROR RETURNED XML (WHICH ARE STILL VALID URLS) 
for d, subdir, files in os.walk('AWS'): 
    for f in files: 
     if os.stat(os.path.join(d, f)).st_size < 400: 
      os.remove(os.path.join(d, f)) 

Ausgabe

XML Download List

Verwandte Themen