Professional Documents
Culture Documents
Losfenmenosdeuna
fuentededatostabular
2013gvSIGAssociation
EstedocumentosedistribuyeconlalicenciaCreativeCommons
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 2
ndice de contenido
1Accesoalosfenmenosdeunafuentededatostabular.................................................3
2Lacoleccindefenmenos.LaclaseFeatureSet.............................................................3
3Manejodelaseleccin.LaclaseSelection.......................................................................4
4ElobjetoFeature...............................................................................................................5
5Modificacindelosatributosdeunfenmeno................................................................5
6Aadirunregistroalafuentededatos............................................................................6
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 3
LosmtodosmsimportantesquetieneelobjetofeatureSetson
getCount()
update(feature)
getCount():devuelveelnmerodefenmenosquetienelafuentededatos
update(feature):actualizaunfenmenodentrodelacoleccin.
Veamoscmorecorrerlosfenmenosdeunacapaconunejemplo.Supongamosquetenemosuna
capaactivacuyosfenmenostienenunapropiedad ELEVACION,nosotrosqueremosobtenerel
objetofeaturequesecorrespondeconelvalormximodeesteatributo.
Lospasosquesesiguenenelejemploson(ejemplo1):
Obtenemoslacapaactiva
Obtenemoseliteradordelconjuntodefenmenosdelacapa
Inicializamoslasvariables
Recorremoselconjuntodefenmenosmedianteeliterador
ComprobamoselvalordelatributoELEVACION
Siesmayorqueelqueyahemosalmacenadoguardamoselfenmeno
layer = currentLayer()
features = layer.features()
fmax = 0.0
newFeature = None
for feature in features:
if feature.ELEVACION > fmax:
newFeature = feature.getCopy()
#
#resto de codigo
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 4
Tambinpuededarselacircunstanciadequequeramosoperarconunconjuntodedatosqueya
tenemosseleccionadosenlacapa.EnestecasodeberemosusarelmtodogetSelectiondelacapa
(ejemplo3).
layer = currentLayer()
features = layer.getSelection()
#
#resto de codigo
Esposible,tambin,quequeramosrecorrerlosfenmenoseiraadiendoalgunosalaseleccin,
paraello,loprimeroquedebemoshaceresobtenerelobjeto'selection'yaadirlosfenmenosque
queramosmedianteelmtodo'select'(ejemplo4).
layer = currentLayer()
features = layer.features()
for feature in features:
featureCopy = feature.getCopy()
layer.getSelection().select(featureCopy)
#
#resto de codigo
Esteejemploanterior,haraunaseleccindetodoslosfenmenosdelacapa,loqueesequivalente
almtodo'selectAll'(ejemplo5).
layer = currentLayer()
features = layer.getSelection().selectAll()
Siqueremosseleccionarlosfenmenosquecumplanunadeterminadacondicinpodemoshacerlo
delasiguientemanera.Esteejemploaadealaseleccinelfenmenoquetieneelvalormsaltoen
elcampoELEVATION(ejemplo6).
layer = currentLayer()
features = layer.features()
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 5
fmax =0
featureCopy = None
for feature in features:
if feature.ELEVACION > fmax:
featureCopy = feature.getCopy()
if featureCopy:
layer.getSelection().select(featureCopy)
#
#resto de codigo
4 El objeto Feature
Representaunfenmenodeunafuentededatostabular.Susmtodosprincipalesson:
geometry()
getValues()
edit()
set(nombre,valor)
geometry():Devuelvelageometrapordefectodelfenmeno.
getValues(): Devuelve un diccionario con el nombre y el valor de las propiedades del
fenmeno
edit():poneelfenmenoenmodoedicin.
set(nombre,valor):Estableceenlapropiedadestablecidamedianteelparmetronombreel
valorpasadocomoparmetro.
nombre,string:Nombredelapropiedaddelfenmeno
valor,object:Valorquedebeasignarsealapropiedad
fuente.commit()
El cdigo para modificar una capa es el mismo llamando a la funcin
currentLayer.
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 6
append(values):Creaunnuevofenmenoyloaadealacoleccindedatos.
values,dict:Aadeenlapropiedadkeydelfenmeno,elvalorcorrespondiente.
Sielobjetonoestenestadodeedicinalusarestemtodosecambiarelestadoamodo
edicin.
Porejemplo,supongamosquetenemosundxfsinregistrosconuncampo"Id",detipoenteroy
queremosaadir10registrosnuevoscuyoidseincrementeenunaunidad(ejemplo8).
table = currentTable()
values = dict()
for i in range(1,11):
values["Id"] = i
table.append(values)
table.commit()
2013gvSIGAssociation
CursoscriptingengvSIG2:Manipulacindedatosvectoriales 7
gvSIGAssociation
PlazaDonJuandeVillarrasa145,
46001,Valencia(Spain)
RegistroNacionaldeAsociaciones:596206
email:info@gvsig.com
Web:www.gvsig.com
Webdelproyecto:http://www.gvsig.org
DocumentacinrealizadaporVctorAcevedo.
ListasdeDistribucin
Existentreslistasdedistribucinconelobjetodefacilitarlacomunicacinentretodoslosinteresadosenelproyecto
gvSIG.Lasdosprimeras,ladeusuariosyladedesarrolladores,estnprincipalmenteorientadasalacomunidadde
habla hispana, siendo el castellano el idioma preferente a utilizar en las mismas. La tercera de ellas, lista
internacional,estorientadaprincipalmentealrestodecomunidadesylalenguapreferenteautilizareslainglesa.
Listadeusuarios.Aqupodishacerllegarvuestraopininsobreelfuncionamiento:qucosasos
gustaraquesedesarrollaran,dudasenelusodegvSIGytodoaquelloquepensisquetienecabidaenunalista
deusuarios.Elenlaceparalasuscripcinalalistadeusuarioses:
http://listserv.gva.es/mailman/listinfo/gvsig_usuarios
Listadedesarrolladores.Estorientadaparatodoslosinteresadosenconocercmoestdesarrollado
elgvSIG.Elenlaceparalasuscripcinaestalistaesa:
http://listserv.gva.es/mailman/listinfo/gvsig_desarrolladores
Listainternacional.Estorientadatantoparausuarioscomoparadesarrolladoresdehablanohispana.
Elidiomaautilizarespreferentementeingls.Elenlaceparalasuscripcinaestalistaes:
http://listserv.gva.es/mailman/listinfo/gvsig_internacional
Todos los nombres propios de programas, sistemas operativos, equipo hardware etc., que
aparecenenestecursosonmarcasregistradasdesusrespectivascompaasuorganizaciones.
2013gvSIGAssociation
2013gvSIGAssociation