diff --git a/THISMEDownload.py b/THISMEDownload.py
new file mode 100755
index 0000000000000000000000000000000000000000..503c7a055ff2cfd15979f1c94ca93b2590f880f6
--- /dev/null
+++ b/THISMEDownload.py
@@ -0,0 +1,121 @@
+#!/usr/bin/python3
+##################################################################################
+#Script developped by:                                                           #
+#Loic Lozach                                                                     #
+#THEIA Development Engineer at INRAE                                             #
+#                                                                                #
+#Download Soil Moisture maps from THISME web application.                        #
+#On web client, use the search filters to find the images you want.              #
+#In adress bar of your browser, copy the query starting after ? in the url.      #
+#Paste it as argument of -urlq option, WARNING ADD QUOTES!!!!.                   #
+#                                                                                #
+##################################################################################
+
+import argparse, os
+from subprocess import Popen, PIPE
+import otbApplication, datetime, json
+
+
+
+def write_xml_results(file, tree):
+    xml_string = ET.tostring(tree).decode()
+    parsed_xml = mdom.parseString(xml_string)
+    pretty_xml_as_string = parsed_xml.toprettyxml()
+
+    file.write(pretty_xml_as_string)
+    
+def process_command(cmd):
+    print("Starting : "+" ".join(cmd))
+    p = Popen(cmd, stdout=PIPE)
+#    p.wait()
+    output = p.communicate()[0]
+    if p.returncode != 0: 
+        print("process failed %d : %s" % (p.returncode, output))
+    print("#################################################")
+    return p.returncode
+
+def download_json(urlquery):
+    querynow = datetime.datetime.today()
+    exformat = "%Y%m%d-%H%M%S"
+    qoutfile = os.path.join(args.downdir,"THISMEquery_"+querynow.strftime(exformat)+".json")
+    
+    cmd = ["curl", "-X", "GET", urlquery, "--output",qoutfile]
+    
+    process_command(cmd)
+    
+    return qoutfile
+
+if __name__ == "__main__":
+    # Make parser object
+    parser = argparse.ArgumentParser(description=
+        """
+        Download Soil Moisture maps from THISME web application.
+        On web client, use the search filters to find the images you want.
+        In adress bar of your browser, copy the query starting after ? in the url.
+        Paste it as argument of -urlq option, WARNING ADD QUOTES!!!!.
+        """)
+    
+    parser.add_argument('-urlq', action='store', required=True, help='Images query contained in the url of THISME (ADD QUOTES!), starts after "https://thisme.cines.teledetection.fr/#!/search?" ')
+    parser.add_argument('-downdir', action='store', required=False, help='[Optional] Directory where soil moisture maps will be downloaded, default current dir')
+    
+    
+    
+    args=parser.parse_args()
+    
+    if args.downdir == None:
+        args.downdir = os.path.abspath(".")
+    
+    if not os.path.isdir(args.downdir):
+        os.mkdir(args.downdir)
+    
+    querysplit = args.urlq.split("&")
+    indcoll = None
+    indlimit = None
+    collection = None
+    for q in querysplit:
+        if q.lower().find("collection") == 0:
+            collection = q.split("=")[1]
+            indcoll = querysplit.index(q)
+    
+    if None == indcoll:
+        print("Error: Can't find collection")
+        exit()
+        
+    querysplit.pop(indcoll)
+    
+    for q in querysplit:
+        if q.lower().find("limit") == 0:
+            indlimit = querysplit.index(q)
+    
+    if None != indlimit:
+        querysplit.pop(indlimit)
+    
+    urlbase = 'https://api.thisme.cines.teledetection.fr/collections/'+collection+'/features?_pretty=1&limit=500&'+"&".join(querysplit)
+    
+    qoutfile = download_json(urlbase)
+    
+    jsonnext = True
+    
+    while jsonnext:
+        with open(qoutfile) as f:
+            data = json.load(f)
+            
+        datafeatures = data["features"]
+        for feat in datafeatures:
+            durl = feat["properties"]["services"]["download"]["url"]
+            outtif = os.path.join(args.downdir,durl.split("/")[-1])
+            cmd = ["wget", "-O", outtif, durl]
+            process_command(cmd)
+            
+        datalinks = data["properties"]["links"]
+        if len(datalinks) == 3:
+            if datalinks[2]["rel"] != "next":
+                print("Error: invalid json file")
+                exit()
+            urlnext=datalinks[2]["href"]
+            
+            qoutfile = download_json(urlnext)
+        
+        else:
+            jsonnext = False
+