Ejemplo n.º 1
0
 def __onClickStartButton(self, event):
     self.__dm = DownloadManager(self, self.__downloadList,
                                 self.__dirText.GetValue())
     self.__dm.start()
     self.__downloading = True
     self.__prefCombobox.Clear()
     self.SetStatusText("Downloading...")
Ejemplo n.º 2
0
    def download_data(self):
        self.parentWidget().parentWidget().switch_to_progressview()

        self.download_manager = DownloadManager()
        self.thread = QtCore.QThread()
        self.download_manager.moveToThread(self.thread)

        self.thread.started.connect(self.download_manager.start)
        self.download_manager.hero_loaded.connect(
            self.parentWidget().parentWidget().progress.update)
        self.download_manager.job_done.connect(self.thread.quit)
        self.download_manager.job_done.connect(self.data_loaded)

        self.thread.start()
Ejemplo n.º 3
0
 def _start_download(self):
     if self._status_list.is_empty():
         self._create_popup(_("No items to download"), self.WARNING_LABEL,
                            QMessageBox.OK)
     else:
         self._app_timer.start(100)
         self.download_manager = DownloadManager(self, self._download_list,
                                                 self.opt_manager,
                                                 self.log_manager)
         self.download_manager.sig_callafter.connect(
             self._download_manager_handler)
         self.download_manager.sig_worker_callafter.connect(
             self._download_worker_handler)
         self._status_bar_write(self.DOWNLOAD_STARTED)
         self._buttons["start"].setText(self.STOP_LABEL)
         self._buttons["start"].setToolTip(self.STOP_LABEL)
         self._buttons["start"].setIcon(self._bitmaps["stop"])
Ejemplo n.º 4
0
def main(argv):
    #  --------------------- Handler --------------------- #
    try:
        opts, args = getopt.getopt(argv, "hd:g:t:o:", [
            "help", "test", "date=", "grid=", "target=", "only=", "overwrite"
        ])
    except getopt.GetoptError:
        print('Invalid arguments. Add "-h" or "--help" for help.')
        sys.exit(1)

    date, grid, only, target, overwrite = None, None, None, None, False
    for opt, arg in opts:
        if opt in ("-h", "--help"):
            print('Usage: ./main.py [OPTIONS...]\n\nHelp options:\n\
-h, --help       Show help\n\
--test           Test that all packages and system variables work properly\n\
-d, --date       Set date for all imagery capture (format: yyyy-mm-dd / yyyymmdd)\n\
-g, --grid       Set center grid for sentinel imagery capture (format: east-decimal,north-decimal)\n\
-t, --target     Set path to target directory (format: path/to/target)\n\
-o, --only       Only create specified layer (format: layername)\n\
--overwrite      Overwrite layers in geoserver')
            sys.exit()
        elif opt == ("--test"):
            print(
                "Success! All packages and sytem variables seems to work properly"
            )
            sys.exit()
        elif opt in ("-d", "--date"):
            if '-' in arg:
                date = datetime.strptime(arg, '%Y-%m-%d').date()
            else:
                date = datetime.strptime(arg, '%Y%m%d').date()
        elif opt in ("-g", "--grid"):
            grid = arg
        elif opt in ("-t", "--target"):
            target = arg
        elif opt in ("-o", "--only"):
            only = arg
        elif opt in ("--overwrite"):
            overwrite = True
    if not opts:
        print('WARNING: No arguments provided. Using default values')
    #  ------------------- Handler end ------------------- #

    d = DownloadManager(date=date, grid=grid,
                        target=target)  # Making download instance

    functions = {
        's2c': d.getS2,
        'terramos': d.getTerra,
        's1c': d.getS1,
        's1mos': d.getS1Mos,
        'seaice': d.getSeaIce,
        'icedrift': d.getIceDrift
    }

    #  ------------------ Getting/processing data ------------------ #
    outfiles = []
    if only:
        outfiles.append(functions[only](d.OUTDIR + only + '.tif'))
    else:
        for k, v in functions.iteritems():
            try:
                funcs.printLayerStatus(str(k))
                outfiles.append(v(d.OUTDIR + k + '.tif'))
            except Exception as e:
                print("Could not generate " + k + " layer")
                print(traceback.print_exc())
            finally:
                print("")

    print('Created files: ' + str(outfiles) + '\n')
    if all(file == False for file in outfiles):
        print("No images found")
        exit(1)
    #  ---------------- Getting/processing data end ---------------- #

    # --------------------- Upload to Geoserver -------------------- #
    cat = Catalog("http://localhost:8080/geoserver/rest/", "admin",
                  os.environ["GEOSERVER_SECRET_KEY"])
    print(cat)

    # BUG: ws is sometime cite instead of d.date (fixed?)
    ws = cat.get_workspace(str(d.DATE))
    if ws is None:
        ws = cat.create_workspace(str(d.DATE), str(d.DATE) + 'uri')

    for layerdata in outfiles:
        if layerdata:
            layername = layerdata.split('/')[-1].split('.')[0]
            print('Adding ' + layername + ' to geoserver...')
            cat.create_coveragestore(name=layername,
                                     data=layerdata,
                                     workspace=ws,
                                     overwrite=overwrite)

    print('Sensor data for ' + str(d.DATE) +
          ' has been successfully uploaded!')