def GetListOfMapsets(dbase, location, selectable=False): """Get list of mapsets in given GRASS location :param dbase: GRASS database path :param location: GRASS location :param selectable: True to get list of selectable mapsets, otherwise all :return: list of mapsets - sorted (PERMANENT first) """ listOfMapsets = list() if selectable: ret = RunCommand('g.mapset', read=True, flags='l', location=location, dbase=dbase) if not ret: return listOfMapsets for line in ret.rstrip().splitlines(): listOfMapsets += line.split(' ') else: for mapset in glob.glob(os.path.join(dbase, location, "*")): if os.path.isdir(mapset) and \ os.path.isfile(os.path.join(dbase, location, mapset, "WIND")): listOfMapsets.append(os.path.basename(mapset)) ListSortLower(listOfMapsets) return listOfMapsets
def GetListOfMapsets(dbase, location, selectable=False): """Get list of mapsets in given GRASS location :param dbase: GRASS database path :param location: GRASS location :param selectable: True to get list of selectable mapsets, otherwise all :return: list of mapsets - sorted (PERMANENT first) """ listOfMapsets = list() if selectable: ret = RunCommand('g.mapset', read=True, flags='l', location=location, dbase=dbase) if not ret: return listOfMapsets for line in ret.rstrip().splitlines(): listOfMapsets += line.split(' ') else: for mapset in glob.glob(os.path.join(dbase, location, "*")): if os.path.isdir(mapset) and os.path.isfile( os.path.join(dbase, location, mapset, "WIND")): listOfMapsets.append(os.path.basename(mapset)) ListSortLower(listOfMapsets) return listOfMapsets
def OnRun(self, event): """Import/Link data (each layes as separate vector map)""" self.commandId = -1 data = self.list.GetLayers() data = self._getLayersToReprojetion(2, 3) if data is None: return if not data: GMessage(_("No layers selected. Operation canceled."), parent=self) return dsn = self.dsnInput.GetDsn() ext = self.dsnInput.GetFormatExt() for layer, output, listId in data: userData = {} if self.dsnInput.GetType() == 'dir': idsn = os.path.join(dsn, layer) else: idsn = dsn # check number of bands nBandsStr = RunCommand('r.in.gdal', flags='p', input=idsn, read=True) nBands = -1 if nBandsStr: try: nBands = int(nBandsStr.rstrip('\n')) except: pass if nBands < 0: GWarning(_("Unable to determine number of raster bands"), parent=self) nBands = 1 userData['nbands'] = nBands cmd = self.getSettingsPageCmd() cmd.append('input=%s' % dsn) cmd.append('output=%s' % output) if self.overwrite.IsChecked(): cmd.append('--overwrite') if UserSettings.Get(group='cmd', key='overwrite', subkey='enabled') and '--overwrite' not in cmd: cmd.append('--overwrite') # run in Layer Manager self._giface.RunCmd( cmd, onDone=self.OnCmdDone, userData=userData, addLayer=False)
def OnRun(self, event): """Import/Link data (each layes as separate vector map)""" self.commandId = -1 data = self.list.GetLayers() data = self._getLayersToReprojetion(2, 3) if data is None: return if not data: GMessage(_("No layers selected. Operation canceled."), parent=self) return if not self._validateOutputMapName(): return dsn = self.dsnInput.GetDsn() ext = self.dsnInput.GetFormatExt() for layer, output, listId in data: userData = {} if self.dsnInput.GetType() == 'dir': idsn = os.path.join(dsn, layer) else: idsn = dsn # check number of bands nBandsStr = RunCommand('r.in.gdal', flags='p', input=idsn, read=True) nBands = -1 if nBandsStr: try: nBands = int(nBandsStr.rstrip('\n')) except: pass if nBands < 0: GWarning(_("Unable to determine number of raster bands"), parent=self) nBands = 1 userData['nbands'] = nBands cmd = self.getSettingsPageCmd() cmd.append('input=%s' % idsn) cmd.append('output=%s' % output) if self.override.IsChecked(): cmd.append('-o') if self.overwrite.IsChecked(): cmd.append('--overwrite') if UserSettings.Get(group='cmd', key='overwrite', subkey='enabled') and '--overwrite' not in cmd: cmd.append('--overwrite') # run in Layer Manager self._giface.RunCmd(cmd, onDone=self.OnCmdDone, userData=userData, addLayer=False)