def newLayer(layer, path, geometryType): #path = "C:/gvsig/test03.shp" CRS= gvsig.currentProject().getProjectionCode() schema = gvsig.createSchema(layer.getSchema()) output = gvsig.createShape( schema, path, CRS=CRS, geometryType = geometryType ) gvsig.currentView().addLayer(output) return output
def main(*args): # Inputs idStore = "refman" idTable = "refman" fields = ["pob_0_14", "pob_15_65", "pob_66_mas"] #fields = ["Campo1", "Campo2"] #, "Campo3"] #fields = ["Campo1"] #layerName = "ejemplo_puntos" layerName = "pob_5fs" #layerName = "fewlines" store = gvsig.currentView().getLayer(layerName).getFeatureStore() table = gvsig.currentView().getLayer(layerName).getFeatureStore() #store = gvsig.currentLayer().getFeatureStore() #table = gvsig.currentLayer().getFeatureStore() default_segs = 15 gaps = 1 half_step = 90 internalRadius = 0 radiusInterval = 0 centerTopSector = True iLabel = True labelOnlyFirstSector = False createSectorLabel = True createRingMap(store, table, idStore, idTable, fields, default_segs, gaps, half_step, internalRadius, radiusInterval, centerTopSector, iLabel, labelOnlyFirstSector, createSectorLabel)
def __defineParameters(self, algorithm, kwparams): """ Define input parameters """ params = algorithm.getParameters() for i in range(0,params.getNumberOfParameters()): param = params.getParameter(i) if param.getParameterName() in kwparams: paramValue = kwparams[param.getParameterName()] else: paramValue = kwparams[i] #Vector to SEXTANTE if param.getParameterTypeName() == "Vector Layer": if isinstance(paramValue, str): layer = gvsig.currentView().getLayer(paramValue) paramValue = self.__createSextanteLayer(layer()) else: paramValue = self.__createSextanteLayer(paramValue()) #Raster to SEXTANTE elif param.getParameterTypeName() == "Raster Layer": if isinstance(paramValue, str): layer = gvsig.currentView().getLayer(paramValue) paramValue = self.__createSextanteRaster(layer) else: paramValue = self.__createSextanteRaster(paramValue) #Table to SEXTANTE elif param.getParameterTypeName() == "Table": if isinstance(paramValue, str): layer = gvsig.currentProject().getTable(paramValue) paramValue = self.__createSextanteTable(layer()) else: paramValue = self.__createSextanteTable(paramValue()) #Set parameter value param.setParameterValue(paramValue)
def newLayer(layer, path, geometryType=None): CRS = layer.getProjectionCode() schema = gvsig.createSchema(layer.getSchema()) if geometryType==None: geometryType = layer.getTypeVectorLayer().getType() output = gvsig.createShape( schema, path, CRS=CRS, geometryType=geometryType ) gvsig.currentView().addLayer(output) return output
def loadShapeFileFalse(shpFile, CRS='CRS:84'): try: CRS = gvsig.currentProject().getProjectionCode() except: pass layer = gvsig.loadLayer('Shape', shpFile=shpFile, CRS=CRS) gvsig.currentView().addLayer(layer) return gvsig.Layer(layer)
def newLayer(layer, path, geometryType): #path = "C:/gvsig/test03.shp" CRS = gvsig.currentProject().getProjectionCode() schema = gvsig.createSchema(layer.getSchema()) output = gvsig.createShape(schema, path, CRS=CRS, geometryType=geometryType) gvsig.currentView().addLayer(output) return output
def newLayer(layer, path, geometryType=None): CRS = layer.getProjectionCode() schema = gvsig.createSchema(layer.getSchema()) if geometryType == None: geometryType = layer.getTypeVectorLayer().getType() output = gvsig.createShape(schema, path, CRS=CRS, geometryType=geometryType) gvsig.currentView().addLayer(output) return output
def addAccidentsLayer(self): dataManager = DALLocator.getDataManager() workspace = dataManager.getDatabaseWorkspace("ARENA2_DB") if workspace == None: msgbox("Debera conectarse al espacio de trabajo de ARENA2_DB") return repo = workspace.getStoresRepository() store = repo.getStore("ARENA2_ACCIDENTES") layer = MapContextLocator.getMapContextManager().createLayer( "Accidentes", store) gvsig.currentView().getMainWindow().getMapControl().addLayer(layer)
def main(*args): proportionX = 1 proportionY = 1 xi = 0 yi = 0 baseLines = createBaseLayers(proportionX, proportionY) # Setting coordinates to aoristic clock nameFieldHour = "HORA" nameFieldDay = "DIA" patternHour = '%H:%M:%S' patternDay = '%Y-%m-%d' layer = gvsig.currentLayer() # New points layer schema = gvsig.createFeatureType( layer.getFeatureStore().getDefaultFeatureType()) # DefaultFeatureType newPoints = gvsig.createShape(schema) # Transform set = layer.getFeatureStore().getFeatureSet() newPoints.edit() store = newPoints.getFeatureStore() for f in set: fieldHour = f.get(nameFieldHour) d = datetime.datetime.strptime(fieldHour, patternHour).time() totalSecs = float(d.minute * 60 + d.second) / 3600 x = float(d.hour) + float(totalSecs) x = x * proportionX fieldDay = f.get(nameFieldDay) dday = datetime.datetime.strptime(fieldDay, patternDay) y = dday.weekday() y = y * proportionY nf = store.createNewFeature(f) newGeom = geom.createPoint(geom.D2, x, y) nf.setDefaultGeometry(newGeom) store.insert(nf) newPoints.commit() gvsig.currentView().addLayer(newPoints) mp = MapContextLocator.getMapContextManager() leg = mp.createLegend("HeatmapLegend") leg.setROI(baseLines.getFullEnvelope().getGeometry()) leg.setUseFixedViz(False) leg.setCorrectionFixedViz(100) leg.setDistance(30) colorTables = SymbologySwingLocator.getSwingManager().createColorTables( ).get(5) leg.setColorTable(colorTables.getColors()) newPoints.setLegend(leg)
def loadShapeFileNew(shpFile, CRS='CRS:84', tocName=False, active=False, view=gvsig.currentView()): try: CRS = gvsig.currentView().getProjectionCode() except: pass layer = loadLayerNew('Shape', shpFile=shpFile, CRS=CRS, tocName=tocName, ) if isinstance(view,str): view = gvsig.currentProject().getView(view) else: view= gvsig.currentView() view.addLayer(layer) layer.setActive(active) return gvsig.Layer(layer)
def __defineParameters(self, algorithm, kwparams): """ Define input parameters """ params = algorithm.getParameters() for i in xrange(0, params.getNumberOfParameters()): param = params.getParameter(i) if param.getParameterName() in kwparams: paramValue = kwparams[param.getParameterName()] else: paramValue = kwparams[i] #Input params: Tranform STRING to NUMERIC cond1 = (str(param) == "Numerical Value") cond2 = (str(param) == "Selection") isstr = isinstance(paramValue, str) cond4 = (str(param) == "Boolean") cond5 = (str(param) == "Table Field") print str(param), type(paramValue) if isstr: if (cond1 or cond2): paramValue = float(paramValue) elif cond4: paramValue = eval(paramValue.capitalize()) elif cond5: paramValue = int(paramValue) else: #is str pass #Vector to SEXTANTE if param.getParameterTypeName() == "Vector Layer": if isinstance(paramValue, str): layer = gvsig.currentView().getLayer(paramValue) paramValue = self.__createSextanteLayer(layer()) else: paramValue = self.__createSextanteLayer(paramValue()) #Raster to SEXTANTE elif param.getParameterTypeName() == "Raster Layer": if isinstance(paramValue, str): layer = gvsig.currentView().getLayer(paramValue) paramValue = self.__createSextanteRaster(layer) else: paramValue = self.__createSextanteRaster(paramValue) #Table to SEXTANTE elif param.getParameterTypeName() == "Table": if isinstance(paramValue, str): layer = gvsig.currentProject().getTable(paramValue) paramValue = self.__createSextanteTable(layer()) else: paramValue = self.__createSextanteTable(paramValue()) #Set parameter value param.setParameterValue(paramValue)
def process(selfStatus,store,raster,outputFilePath=None): # SELECT METHOD TO TRANSFORM POINTS method = "setZFromRaster" #None geomManager = GeometryLocator.getGeometryManager() if store.getFeatureSelection().getSize()>0: fset = store.getFeatureSelection() else: fset = store.getFeatureSet() nsch = gvsig.createFeatureType(store.getDefaultFeatureType()) if method == "setZFromRaster": transformMethod = setZFromRaster subtype = geom.D3M nsch.get("GEOMETRY").setGeometryType(nsch.get("GEOMETRY").getGeometryType(), subtype) if outputFilePath is None: outputFilePath = gvsig.getTempFile("result_geometries",".shp") ns = gvsig.createShape(nsch,outputFilePath) ns.edit() store = ns.getFeatureStore() selfStatus.setRangeOfValues(0,fset.getSize()) for f in fset: selfStatus.next() fg = f.getDefaultGeometry() #print "Default geometry: ", fg, if subtype == None: subtype = fg.getGeometryType().getSubType() nm = geomManager.create(fg.getGeometryType().getType(), subtype) if isinstance(fg,MultiPrimitive): # for multiprimitive for i in range(0,fg.getPrimitivesNumber()): iPol = fg.getPrimitiveAt(i) np = geomManager.create(iPol.getGeometryType().getType(), subtype) insertVertexFromGeometryInGeometry(iPol, np, raster, transformMethod) ## INSERT nm.addPrimitive(np) else: # for primitive insertVertexFromGeometryInGeometry(fg, nm, raster, transformMethod) ## INSERT nf = store.createNewFeature(f) nf.set("GEOMETRY", nm) store.insert(nf) if selfStatus.isCanceled() == True: ns.finishEditing() return True ns.finishEditing() gvsig.currentView().addLayer(ns)
def checkErrorsLayer(self, line): errorsLayer = gvsig.currentView().getLayer(self.errorsLayerName) if errorsLayer == None: errorsLayerSchema = gvsig.createSchema() errorsLayerSchema.append("GEOMETRY", "GEOMETRY") errorsLayerSchema.get("GEOMETRY").setGeometryType(geom.POINT, geom.D2) errorsLayer = gvsig.createShape(errorsLayerSchema) errorsLayer.setName(self.errorsLayerName) errorsLegend = SingleSymbolLegend() errorsSymbol = SimpleMarkerSymbol() errorsSymbol.setColor(gvsig.utils.getColorFromRGB(255, 0, 51)) # RGB errorsSymbol.setSize(10) errorsLegend.setDefaultSymbol(errorsSymbol) errorsLayer.setLegend(errorsLegend) gvsig.currentView().addLayer(errorsLayer)
def crearCapaDePoligonos(process, layerName): capa = createShape(process.getPolygonFeatureType()) capa.setName(layerName) store = capa.getFeatureStore() store.edit() for unCentro in process.centros: unCentro.area = None f = store.createNewFeature() f.set("ID",unCentro.id) f.set("NAME",unCentro.nombre) f.set("COUNT",unCentro.getTotalCount()) f.set("GEOMETRY",unCentro.getPolygon()) store.insert(f) capa.commit() currentView().addLayer(capa)
def startCapture(self): if self.mapControl != None: return i18n = ToolsLocator.getI18nManager() viewdoc = currentView() if viewdoc == None: msgbox(i18n.getTranslation("_Must_have_an_active_View")) return self.mapControl = viewdoc.getWindowOfView().getMapControl() self.previousTool = self.mapControl.getCurrentTool() self.mapControl.addBehavior("CoordinateCaptureTool", PointBehavior(self)) self.mapControl.setTool("CoordinateCaptureTool") self.btnToggleCapture.setText( i18n.getTranslation("_End_points_capture")) if self.crs == None: self.crs = self.mapControl.getProjection() self.transform = None elif self.crs == self.mapControl.getProjection(): self.transform = None else: self.transform = self.mapControl.getProjection().getCT(self.crs) self.txtCRS.setText(self.crs.getAbrev()) self.btnClearCRS.setEnabled(True) self.btnCRS.setEnabled(True)
def currentActive(): """Return first active layer on the View""" layers = gvsig.currentView().getLayers() lyrlist = [ layers[i] for i in range(0, layers.__len__())] for i in lyrlist: if i.isActive(): return i return None
def execute(self, rule, line, parameters): try: self.checkErrorsLayerName() self.checkErrorsLayer(line) self.checkSelectedRowCount() geometry1 = line.getFeature1().getFeature().getDefaultGeometry() geometry2 = line.getFeature2().getFeature().getDefaultGeometry() intersection = geometry1.intersection(geometry2) errorsLayer = gvsig.currentView().getLayer(self.errorsLayerName) errorsLayer.edit() geometryType1 = intersection.getGeometryType() if geometryType1.getType() == geom.POINT or geometryType1.isTypeOf(geom.POINT): errorsLayer.append(GEOMETRY=intersection) errorsLayer.commit() self.linesCount += 1 self.checkProcessState() except: ex = sys.exc_info()[1] gvsig.logger("Can't execute action. Class Name: " + ex.__class__.__name__ + ". Exception: " + str(ex), gvsig.LOGGER_ERROR)
def main(*args): viewDoc = gvsig.currentView() viewPanel = viewDoc.getWindowOfView() mapControl = viewPanel.getMapControl() reportbypoint = ReportByPoint() reportbypoint.setTool(mapControl)
def loadShapeFileNew(shpFile, CRS='CRS:84', active=False, view=gvsig.currentView()): try: CRS = gvsig.currentView().getProjectionCode() except: pass layer = gvsig.loadLayer('Shape', shpFile=shpFile, CRS=CRS) if isinstance(view, str): view = gvsig.currentProject().getView(view) else: view = gvsig.currentView() view.addLayer(layer) layer.setActive(active) return gvsig.Layer(layer)
def main(*args): p = geom.createPoint2D(0.4445681294, 42.562040941311) mapControl = gvsig.currentView().getMainWindow().getMapControl() content = getHTMLReportByPoint(p, mapControl) r = ReportByPointPanelReport() r.showTool("Report by point") r.setHTMLText(content)
def currentRaster(): """Return first raster active layer on the View""" layers = gvsig.currentView().getLayers() lyrlist = [layers[i] for i in range(0, layers.__len__())] for i in lyrlist: if i.isActive() and isinstance(i, DefaultFLyrRaster): return i return None
def geoprocess(algorithmId, **kwparams): geoprocess = Geoprocess() r = geoprocess.execute(algorithmId, kwparams ) #view = gvsig.currentView() if r == None: return outList = [] print "| Output layers: " for value in r.values(): if isinstance(value, unicode): outList.append(value.encode("UTF-8")) elif isinstance(value, FLyrVect): print "|\t Value:", value.getName() path = value.getDataStore().getFullName() print "|\t\tPath: ", path crs = gvsig.currentView().getProjectionCode() out = loadShapeFileFalse(str(path),crs) outList.append(out) #elif isinstance(value, IRasterLayer): elif isinstance(value,FLayer): print "|\t Value:", value.getName() print "|\t\t", value.getFileName()[0] raster = gvsig_raster.loadRasterLayer(value.getFileName()[0]) outList.append(raster) else: print "Non-type" print "\tValue: ", value print "\n" return outList
def currentActive(): """Return first active layer on the View""" layers = gvsig.currentView().getLayers() lyrlist = [layers[i] for i in range(0, layers.__len__())] for i in lyrlist: if i.isActive(): return i return None
def isVisible(self,action): if action == "view-time-add-basic-support-to-datasource": view = currentView() if view == None: return False mapContext = view.getMapContext() return mapContext.hasLayers()
def main(*args): viewDoc = gvsig.currentView() viewPanel = viewDoc.getWindowOfView() mapControl = viewPanel.getMapControl() reportbypoint = QuickDrawingRectangle() reportbypoint.setTool(mapControl)
def geoprocess(algorithmId, **kwparams): geoprocess = Geoprocess() r = geoprocess.execute(algorithmId, kwparams) #view = gvsig.currentView() if r == None: return outList = [] print "| Output layers: " for value in r.values(): if isinstance(value, unicode): outList.append(value.encode("UTF-8")) elif isinstance(value, FLyrVect): print "|\t Value:", value.getName() path = value.getDataStore().getFullName() print "|\t\tPath: ", path crs = gvsig.currentView().getProjectionCode() out = loadShapeFileFalse(str(path), crs) outList.append(out) #elif isinstance(value, IRasterLayer): elif isinstance(value, FLayer): print "|\t Value:", value.getName() print "|\t\t", value.getFileName()[0] raster = gvsig_raster.loadRasterLayer(value.getFileName()[0]) outList.append(raster) else: print "Non-type" print "\tValue: ", value print "\n" return outList
def __defineExtent(self, algorithm, kwparams): """ Define Analysis Extent """ if 'EXTENT' in kwparams.keys(): print ("|"+str(kwparams.keys())) frame = kwparams['EXTENT'] print ("|"+str(frame)) print "TIPO DE FRAME", type(frame) if isinstance(frame, str) and frame == 'VIEW' or isinstance(frame, gvsig.View): AExtent = AnalysisExtent() print "EXTENT ************ VIEW" if isinstance(frame, gvsig.View): view = frame else: view = gvsig.currentView() envelope = view.getMap().getFullEnvelope() xlow = envelope.getLowerCorner().getX() ylow = envelope.getLowerCorner().getY() xup = envelope.getUpperCorner().getX() yup = envelope.getUpperCorner().getY() #print xlow, ylow, xup, yup frame = Rectangle2D.Double(xlow, ylow, xup, yup) print frame AExtent.addExtent(frame) #elif isinstance(frame, raster): elif isinstance(frame, DefaultFLyrRaster): print "EXTENT ************ RASTER" layer = self.__createSextanteRaster(frame) AExtent = AnalysisExtent(layer) elif isinstance(frame, list): print "EXTENT ************ LIST" AExtent = AnalysisExtent() xlow, ylow, xup, yup = frame[0], frame[1], frame[2], frame[3] frame = Rectangle2D.Double(xlow, ylow, xup, yup) print frame AExtent.addExtent(frame) elif isinstance(frame, gvsig.Layer): print "EXTENT ************ layer" layer = self.__createSextanteLayer(frame()) AExtent = AnalysisExtent(layer) """ envelope = frame.data().getEnvelope() xlow = envelope.getLowerCorner().getX() ylow = envelope.getLowerCorner().getY() xup = envelope.getUpperCorner().getX() yup = envelope.getUpperCorner().getY() """ else: raise NameError("Not Extent Define") #Set: cellsize if 'CELLSIZE' in kwparams.keys(): AExtent.setCellSize(kwparams['CELLSIZE']) print "| New Cellsize: ", kwparams['CELLSIZE'], AExtent.getCellSize() else: print "| Cellsize: ", AExtent.getCellSize() algorithm.setAnalysisExtent(AExtent) print ("| Set Extent") else: print ("| Not Extent") #??? if algorithm.canDefineOutputExtentFromInput(): algorithm.adjustOutputExtent()
def currentRaster(): """Return first raster active layer on the View""" layers = gvsig.currentView().getLayers() lyrlist = [ layers[i] for i in range(0,layers.__len__())] for i in lyrlist: if i.isActive() and isinstance(i, DefaultFLyrRaster): return i return None
def main(*args): print "Testing graphic memory store" #v = DrawGraphicLayer() store = createMemoryStore() store.edit(FeatureStore.MODE_APPEND) f = store.createNewFeature() line1 = geom.createGeometry(geom.LINE) line1.addVertex(geom.createPoint(geom.D2, 0, 0)) line1.addVertex(geom.createPoint(geom.D2, 10, 10)) f.set('ID', 1) f.set('GEOMETRY', line1) store.insert(f) store.finishEditing() store.edit() f.set('ID', 2) f.set('GEOMETRY', geom.createPoint(geom.D2, 15, 10)) store.insert(f) f.set('ID', 2) f.set('GEOMETRY', geom.createPoint(geom.D2, 15, 10)) store.insert(f) store.finishEditing() #load layer mapContextManager = MapContextLocator.getMapContextManager() layer = mapContextManager.createLayer('MyLayer', store) gvsig.currentView().addLayer(layer) features = store.getFeatures() selection = store.getFeatureSelection() for f in features: selection.select(f) store.edit() features = store.getFeatureSelection() values = {"GEOMLINE": 1} for f in features: fe = f.getEditable() print "F: ", f for key, value in values.iteritems(): fe.set(key, value) store.update(fe) store.commit()
def main(*args): # Inputs idStore = "refman" idTable = "refman" fields = ["pob_0_14", "pob_15_65", "pob_66_mas"] layerName = "pob_5fs" store = gvsig.currentView().getLayer(layerName).getFeatureStore() table = gvsig.currentView().getLayer(layerName).getFeatureStore() #store = gvsig.currentLayer().getFeatureStore() #table = gvsig.currentLayer().getFeatureStore() default_segs = 15 gaps = 3 half_step = 90 internalRadius = 0 radiusInterval = 8 centerTopSector = True createRingMap(store, table, idStore, idTable, fields, default_segs, gaps, half_step, internalRadius, radiusInterval, centerTopSector)
def execute(self,actionCommand, *args): actionCommand = actionCommand.lower() if actionCommand == "settool-toolfinder": viewPanel = gvsig.currentView().getWindowOfView() mapControl = viewPanel.getMapControl() mytool = ToolFinderPanel() i18n = ToolsLocator.getI18nManager() mytool.showTool(i18n.getTranslation("_Tool_finder"))
def execute(self,actionCommand, *args): actionCommand = actionCommand.lower() if actionCommand == "settool-quickdrawing": viewPanel = currentView().getWindowOfView() mapControl = viewPanel.getMapControl() quickdrawing = QuickDrawingTool() i18n = ToolsLocator.getI18nManager() quickdrawing.showTool(i18n.getTranslation("_Quick_drawing"))
def isEnabled(self,action): if action == "view-time-add-basic-support-to-datasource": view = currentView() if view == None: return False mapContext = view.getMapContext() if not mapContext.hasLayers(): return False return mapContext.hasActiveVectorLayers()
def getMunicipalitiesParcelsFeatureSet(codmuni): manager = DALLocator.getDataManager() storeParameters = manager.createStoreParameters("H2Spatial") database_file = gvsig.getResource(__file__,"data","municipalities.mv.db") storeParameters.setDynValue("database_file",database_file) storeParameters.setDynValue("Table","Muni") storeParameters.setDynValue("SQL","""SELECT * FROM "Muni" WHERE CODMUN='{0}'""".format(codmuni)); store = manager.openStore("H2Spatial",storeParameters) #try: # query = u"""CODMUN='{0}'""".format(codmuni) # featureSet = store.getFeatureSet(query) #except: # return None application = ApplicationLocator.getManager() mapcontextmanager = application.getMapContextManager() layer = mapcontextmanager.createLayer(codmuni,store) gvsig.currentView().addLayer(layer) store.dispose()
def main(*args): #process = CutLinesByDistance() #process.selfregister("Scripting") #gm = GeoProcessLocator.getGeoProcessManager() # Actualizamos el interface de usuario de la Toolbox #process.updateToolbox() #store = gvsig.currentLayer().getFeatureStore() store = gvsig.currentView().getLayer("oneline").getFeatureStore() ns = process(None, store, 30) n = gvpy.runalg("geometriestopoints", ns)
def main(*args): currentView = gvsig.currentView() currentLayer = gvsig.currentLayer() area = calcularArea(currentView, currentLayer) if area != 0: message = str( float(area)) + " Km2" # https://es.wikipedia.org/wiki/Uruguay title = unichr( 193) + "rea" # https://es.wikipedia.org/wiki/ISO/IEC_8859-1 mensajeCartel(message, title, commonsdialog.IDEA)
def execute(self, actionCommand, *args): actionCommand = actionCommand.lower() if actionCommand == "settool-exportmaptiles": #print "### QuickinfoExtension.execute(%s)" % repr(actionCommand) layer = currentLayer() if not self.isLayerValid(layer): return viewPanel = currentView().getWindowOfView() mapControl = viewPanel.getMapControl() exportmaptiles = ExportMapTilesPanel() exportmaptiles.showTool("_Export_map_tiles")
def execute(self, actionCommand, *args): actionCommand = actionCommand.lower() if actionCommand == "settool-reportbypoint": #print "### QuickinfoExtension.execute(%s)" % repr(actionCommand) layer = currentLayer() if not self.isLayerValid(layer): return viewPanel = currentView().getWindowOfView() mapControl = viewPanel.getMapControl() reportbypoint = ReportByPoint() reportbypoint.setTool(mapControl)
def sRaster(n): """Return first raster active layer on the View""" layers = gvsig.currentView().getLayers() lyrlist = [ layers[i] for i in range(0,layers.__len__())] count = 0 for i in lyrlist: if isinstance(i, DefaultFLyrRaster): if count == n: return i else: count+=1 return None
def main(*args): #Generate random raster inside the analysis extent #can set cellsizeo of the raster result #if you want choose where to save the shape, you should add one attribute like this: # ,PATH="C://gvsig//random_shape.shp", r = gvpy.runalg("generaterandomnormal", EXTENT = [0,0,0,500,500,0], CELLSIZE=10, MEAN =0.5, STDDEV = 0.5) #Change the orientation of the grid #we can set the path r1 = gvpy.runalg("gridorientation",r,0) #Gradient lines (vector) #as input we introduce the result of the last geoprocess r1 r2 = gvpy.runalg("gradientlines", EXTENT = gvsig.currentView(),INPUT = r1, MIN=1, MAX=10, SKIP=1) #cva algorithm #we don't need to write parameters name as we introduce them in order # and if the algorithm generates 2 or more layers as result, we will pick them as list # if is just one, as unique object #Also, you can specify both names with: , PATH=["C:/gvsig/1.tif","C:/gvsig/2.tif"] r3 = gvpy.runalg("cva", r1, r1, r1, r1, CELLSIZE=100) print "List layers result:",r3[0], r3[1] #You can check the orden of the params writing this here or in Jython console gvpy.algHelp("cva") #or search for a algorithm with a certain words inside his description gvpy.algSearch("aleatorio") #Random vector #also we can introduce a layer as Analysis Extent #doesnt matter if is: vector, raster, gvsig.currentView(), gvsig.currentLayer() or #coordinates of corners [0,0,500,500] v = gvpy.runalg("randomvector", 20, 1, EXTENT=r1) #We don't need to write "v=" before the algorithm if we don't want take the layer result gvpy.runalg("gvSIG-convexhull", v, True) #More gvpy.algHelp("generaterandomnormal") r = gvpy.runalg("generaterandomnormal", 100,100, CELLSIZE=100, EXTENT=[250,250,0,500,500,0]) r = gvpy.runalg("generaterandomnormal", 10, 10, CELLSIZE=50, EXTENT=[500,500,0, 1000,1000,0]) r = gvpy.runalg("generaterandombernoulli", 50.0, CELLSIZE=25, EXTENT=[1000,1000,0, 1250,1250,0]) r = gvpy.runalg("gradientlines", r, 1, 100, 1) v1 = gvpy.runalg("randomvector",10, gvpy.TYPE_POLYGON, EXTENT=[0,0,0,500,500,0]) v2 = gvpy.runalg("randomvector", 5, gvpy.TYPE_POLYGON, EXTENT=v1) v3 = gvpy.runalg("difference", v1, v2) v4 = gvpy.runalg("randomvector", 5, 0, EXTENT=v3) v5 = gvpy.runalg("randomvector", 100, 2) gvpy.algHelp("tablebasicstats") print "End"
def __defineParameters_raster2sextante(self, param, paramValue): if isinstance(paramValue, str): layer = gvsig.currentView().getLayer(paramValue) paramValue = self.__createSextanteRaster(layer) else: paramValue = self.__createSextanteRaster(paramValue) if DEV_INFO: print "** extent add+" if self.__defaultAE == None: self.__defaultAE = AnalysisExtent(paramValue) else: self.__defaultAE.addExtent(AnalysisExtent(paramValue)) return paramValue
def __defineParameters_vector2sextante(self, param, paramValue): if isinstance(paramValue, str): layer = gvsig.currentView().getLayer(paramValue) paramValue = self.__createSextanteLayer(layer()) else: paramValue = self.__createSextanteLayer(paramValue()) if DEV_INFO: print "extent add+" if self.__defaultAE == None: self.__defaultAE = AnalysisExtent(paramValue) else: self.__defaultAE.addExtent(AnalysisExtent(paramValue)) if DEV_INFO: print "PARAM VALUE 1: ", paramValue return paramValue
def currentRaster(): """ #BUG for i in gvsig.currentView().getLayers(): print i """ layers = gvsig.currentView().getLayers() lyrlist = [ layers[i] for i in range(0,3)] for i in lyrlist: if i.isActive and isinstance(i, DefaultFLyrRaster): return i #print lyrlist #if isinstance(i(), DefaultFLyrRaster): # if i.isActive: return i #if i.isActive(): print i return None
def loadRasterLayerNew(rasterfile, mode = "r", tocName=False ): ## Load a Raster file in a Layer gvsig_raster.sourceFileName[0]=rasterfile if not isinstance (rasterfile,File): rasterfile = File(rasterfile) name, ext = gvsig_raster.splitext(rasterfile.getName()) if tocName!=False: name = tocName else: name = name view = gvsig.currentView() # Get the manager to use dalManager = DALLocator.getDataManager() mapContextManager = MapContextLocator.getMapContextManager() if ext.lower() == ".ecw" or ext.lower() == ".jp2" : # FIXME pass elif ext.lower() == ".mrsid": # FIXME pass else: # Create the parameters to open the raster store based in GDAL params = dalManager.createStoreParameters("Gdal Store") params.setFile(rasterfile) # Create the raster store dataStore = dalManager.createStore(params) # Create a raster layer based in this raster store layer = mapContextManager.createLayer(name, dataStore); view.addLayer(layer) return layer
def addLayerView(layer): gvsig.currentView().addLayer(layer)
def __defineParameters_multi2sextante(self, param, paramValue): if DEV_INFO: print "PARAM VALUE PRE", paramValue paramValue2 = [] for i in paramValue: if isinstance(i, str): layer = gvsig.currentView().getLayer(i) i = self.__createSextanteLayer(layer()) ii = self.__createSextanteLayer(layer()) else: if DEV_INFO: print type(i) if isinstance(i, tuple): #si dentro de la lista viene una tupla identificamos que es un raster y su banda from es.unex.sextante.parameters import RasterLayerAndBand rlb = RasterLayerAndBand(self.__createSextanteRaster(i[0]),i[1]) #puesta numero de banda ii = self.__createSextanteRaster(i[0]) i = rlb if DEV_INFO: print "*************************** RASTERLAYERBAND", rlb else: if str(type(i)) == "<type 'org.gvsig.raster.fmap.layers.DefaultFLyrRaster'>": ii = self.__createSextanteRaster(i) i = self.__createSextanteRaster(i) else: ii = self.__createSextanteLayer(i()) i = self.__createSextanteLayer(i()) if DEV_INFO: print "createStextenatnte Layer i :", i paramValue2.append(i) if self.__defaultAE == None: try: self.__defaultAE = AnalysisExtent(AnalysisExtent(ii)) self.__defaultAE.setCellSize(0.49) ### test self.__defaultAE.setCellSizeZ(0.49) ### test #self.__defaultAE.addExtent( ) if DEV_INFO: print "----------- ini defaultAE" except: try: self.__defaultAE = AnalysisExtent(ii()) except: self.__defaultAE = AnalysisExtent(ii) elif self.__defaultAE != None: try: ae = self.__defaultAE #ae.addExtent(AnalysisExtent(ii)) if DEV_INFO: print "------------ diferente defaultAE" except: self.__defaultAE.addExtent(AnalysisExtent(ii())) """ if self.__defaultAE == None: try: self.__defaultAE = AnalysisExtent(i) except: print "excepttttttttttttttt", i ae = i.getRasterLayer() self.__defaultAE = AnalysisExtent(ae) else: try: self.__defaultAE.addExtent(AnalysisExtent(i)) except: print 'exceptttttttttttttt 222222222"', i ae = i.getRasterLayer() print 'ae',ae self.__defaultAE.addExtent(AnalysisExtent(ae)) #print self.__defaultAE """ paramValue = paramValue2 from java.util import ArrayList if DEV_INFO: print "PARAM VALUE 2: ", paramValue print "****************** CONDI6: ", paramValue print "****************** CONDI6: ", ArrayList(paramValue) newParamValue = ArrayList() for i in paramValue: newParamValue.add(i) paramValue = newParamValue #print "***************** CONDI6: ", paramValue #from es.unex.sextante.parameters import ParameterMultipleInput #pmi = ParameterMultipleInput() #pmi.setParameterValue(paramValue) #paramValue = pmi if DEV_INFO: print "#####################################################################" return paramValue
def __defineExtent(self, algorithm, kwparams): """ Define Analysis Extent """ if self.__defaultAE == None: if DEV_INFO: print "-------- cambiar extent" change=True else: if DEV_INFO: print "-------- no cambiar extent" change = False AExtent = self.__defaultAE changeCell = False if 'EXTENT' in kwparams.keys() and algorithm.getUserCanDefineAnalysisExtent() : changeCell = True frame = kwparams['EXTENT'] if isinstance(frame, str): frame = gvsig.currentView().getLayer(frame) #print ("|"+str(frame)+"||"+str(type(frame))) if isinstance(frame, str) or isinstance(frame, gvsig.View): AExtent = AnalysisExtent() if DEV_INFO: print "| EXTENT from VIEW" if isinstance(frame, gvsig.View): view = frame else: view = gvsig.currentProject().getView(frame) envelope = view.getMap().getFullEnvelope() xlow = envelope.getLowerCorner().getX() ylow = envelope.getLowerCorner().getY() xup = envelope.getUpperCorner().getX() yup = envelope.getUpperCorner().getY() AExtent.setXRange(xlow, xup, False) AExtent.setYRange(ylow, yup, False) AExtent.setZRange(0, 0, False) elif isinstance(frame, DefaultFLyrRaster): if DEV_INFO: print "| EXTENT from RASTER" layer = self.__createSextanteRaster(frame) AExtent = AnalysisExtent(layer) changeCell = False #AExtent.setZRange(0, 1, True) if DEV_INFO: print AExtent elif isinstance(frame, list): if DEV_INFO: print "| EXTENT from LIST" AExtent = AnalysisExtent() AExtent.setCellSize(0.49) AExtent.setCellSizeZ(0.49) xlow, ylow, zlow, xup, yup, zup = frame[0], frame[1], frame[2], frame[3], frame[4], frame[5] AExtent.setXRange(xlow, xup, True) AExtent.setYRange(ylow, yup, True) AExtent.setZRange(zlow, zup, True) elif isinstance(frame, gvsig.Layer): if DEV_INFO: print "| EXTENT from Layer" layer = self.__createSextanteLayer(frame()) AExtent = AnalysisExtent(layer) else: raise Exception("Not Extent Define") algorithm.setAnalysisExtent(AExtent) elif change == True: if DEV_INFO: print ("| Not Extent: No input data") AExtent = AnalysisExtent() changeCell = True if self.__defaultAE != None: if DEV_INFO: print "| Extent from Algorithm Layers" AExtent = self.__defaultAE else: try: if DEV_INFO: print "| Extent from View" envelope = gvsig.currentView().getMap().getFullEnvelope() except: raise Exception("None open View") if DEV_INFO: print "| Setting AExtent: ", try: #from view xlow = envelope.getLowerCorner().getX() ylow = envelope.getLowerCorner().getY() zlow = 0 xup = envelope.getUpperCorner().getX() yup = envelope.getUpperCorner().getY() zup = 0 if DEV_INFO: print "| View: ", if DEV_INFO: print xlow, ylow, xup,yup except: # default xlow, ylow, zlow, xup, yup, zup = 0,0,0,100,100,0 if DEV_INFO: print "| Default:", xlow, ylow, xup, yup frame = Rectangle2D.Double(xlow, ylow, xup, yup) AExtent.setXRange(xlow, xup, False) AExtent.setYRange(ylow, yup, False) AExtent.setZRange(zlow, zup, False) algorithm.setAnalysisExtent(AExtent) #Set: cellsize if 'CELLSIZE' in kwparams.keys(): AExtent.setCellSize(kwparams['CELLSIZE']) if DEV_INFO: print "| New Cellsize: ", kwparams['CELLSIZE'], AExtent.getCellSize() elif changeCell == True: AExtent.setCellSize(AExtent.getCellSize()) if DEV_INFO: print "| Cellsize: ", AExtent.getCellSize() if 'CELLSIZEZ' in kwparams.keys(): AExtent.setCellSizeZ(kwparams['CELLSIZEZ']) if DEV_INFO: print "| New Cellsize Z: ", kwparams['CELLSIZEZ'], AExtent.getCellSizeZ() elif changeCell == True: AExtent.setCellSize(AExtent.getCellSizeZ()) if DEV_INFO: print "| CellsizeZ: ", AExtent.getCellSizeZ() if DEV_INFO: print "Å‚Å‚ end extent: ", AExtent #AExtent.setZRange(0.0, 0.0, True) algorithm.setAnalysisExtent(AExtent) if DEV_INFO: print ("| Set Extent")
def __defineExtent(self, algorithm, kwparams): """ Define Analysis Extent """ if 'EXTENT' in kwparams.keys() and algorithm.getUserCanDefineAnalysisExtent() : frame = kwparams['EXTENT'] if isinstance(frame, str): frame = gvsig.currentView().getLayer(frame) print ("|"+str(frame)+"||"+str(type(frame))) if isinstance(frame, str) and frame == 'VIEW' or isinstance(frame, gvsig.View): AExtent = AnalysisExtent() print "EXTENT ************ VIEW" if isinstance(frame, gvsig.View): view = frame else: view = gvsig.currentView() envelope = view.getMap().getFullEnvelope() xlow = envelope.getLowerCorner().getX() ylow = envelope.getLowerCorner().getY() xup = envelope.getUpperCorner().getX() yup = envelope.getUpperCorner().getY() frame = Rectangle2D.Double(xlow, ylow, xup, yup) #AExtent.addExtent(frame) AExtent.setXRange(xlow, xup, False) AExtent.setYRange(ylow, yup, False) AExtent.setZRange(0, 0, False) print "EXTENSIONNNNNNNNNNNNNNNNNNNNNN", AExtent elif isinstance(frame, DefaultFLyrRaster): print "EXTENT ************ RASTER" layer = self.__createSextanteRaster(frame) AExtent = AnalysisExtent(layer) elif isinstance(frame, list): print "EXTENT ************ LIST" AExtent = AnalysisExtent() xlow, ylow, zlow, xup, yup, zup = frame[0], frame[1], frame[2], frame[3], frame[4], frame[5] frame = Rectangle2D.Double(xlow, ylow, xup, yup) print frame #AExtent.addExtent(frame) AExtent.setXRange(xlow, xup, False) AExtent.setYRange(ylow, yup, False) AExtent.setZRange(zlow, zup, False) elif isinstance(frame, gvsig.Layer): print "EXTENT ************ layer" layer = self.__createSextanteLayer(frame()) AExtent = AnalysisExtent(layer) else: raise NameError("Not Extent Define") else: print ("| Not Extent: No input data") #check AExtent = AnalysisExtent() #algorithm.setAnalysisExtent(AExtent) if algorithm.canDefineOutputExtentFromInput(): algorithm.adjustOutputExtent() print algorithm.getAnalysisExtent() print algorithm.isAutoExtent() print "set auto view" AExtent = AnalysisExtent() print "EXTENT ************ VIEW" view = gvsig.currentView() envelope = view.getMap().getFullEnvelope() print "Setting AExtent...", try: print "View" xlow = envelope.getLowerCorner().getX() ylow = envelope.getLowerCorner().getY() xup = envelope.getUpperCorner().getX() yup = envelope.getUpperCorner().getY() print xlow, ylow, xup,yup except: print "Default" xlow, ylow, xup, yup = 0,0,100,100 frame = Rectangle2D.Double(xlow, ylow, xup, yup) AExtent.setXRange(xlow, xup, False) AExtent.setYRange(ylow, yup, False) AExtent.setZRange(0, 0, False) algorithm.setAnalysisExtent(AExtent) #Set: cellsize if 'CELLSIZE' in kwparams.keys(): AExtent.setCellSize(kwparams['CELLSIZE']) print "| New Cellsize: ", kwparams['CELLSIZE'], AExtent.getCellSize() else: print "| Cellsize: ", AExtent.getCellSize() if 'CELLSIZEZ' in kwparams.keys(): AExtent.setCellSizeZ(kwparams['CELLSIZEZ']) print "| New Cellsize Z: ", kwparams['CELLSIZEZ'], AExtent.getCellSizeZ() else: print "| Cellsize: ", AExtent.getCellSizeZ() algorithm.setAnalysisExtent(AExtent) print ("| Set Extent")