Está en la página 1de 160

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL

Fco.JavierBerceroAntiller

Ttulo:Distribucindeunsimuladordeincendiosforestalesa
travsdeSDL

Volumen:1
Alumno:Fco.JavierBerceroAntiller

Director/Ponente:PauFonsecaiCasas
Departamento:EIO(EstadsticaeInvestigacinOperativa)

Data:

Pgina1

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Pgina2

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

DATOSDELPRYECTO
Ttulo del Proyecto: Distribucin de un simulador de incendios forestales a travs de
SDL
Nombredelestudiante:Fco.JavierBerceroAntiller
Titulacin:IngenieraInformtica
Crditos:37,5
Director/Ponente:PauFonsecaiCasas
Departamento:EstadsticaeInvestigacinOperativa

MIEMBROSDELTRIBUNAL(nombreyasignatura)
Presidente:JosCasanovasGarca
EstadsticaeInvestigacinOperativa
Vocal:JosAntonioLubaryMartnez
MatemticaAplicadaII
Secretario:PauFonsecaiCasas
EstadsticaeInvestigacinOperativa

CALIFICACIN
Calificacinnumrica:
Calificacindescriptiva:
Fecha:

Pgina3

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Pgina4

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

ndice

1. INTRODUCCION.........................................................................................................8

1.1

Presentacin......................................................................................................8

1.2

Motivacin.........................................................................................................8

1.3

Problemtica......................................................................................................9

1.4

Objetivos............................................................................................................9

MARCOTEORICO.....................................................................................................11
2.1

Simuladores.....................................................................................................11

2.2

Caractersticasdelfuegoydelosincendiosforestales...................................11

2.3

Simuladoresdelcomportamientodelfuego...................................................12

2.4

Simuladoresactuales.......................................................................................16

2.5

LenguajeSDL....................................................................................................21

2.6

Sistemasdeinformacingeogrfica................................................................24

2.7

Idridi32.............................................................................................................26

2.8

SDLPS................................................................................................................27

2.9

Firelib...............................................................................................................28

2.10 Autmatascelulares........................................................................................30
3

MODELADOyDISEO.............................................................................................33
3.1

Particularidadesdelmodelo............................................................................33

3.1.1

Extensiones..................................................................................................34

3.2

EspecificacinconellenguajeSDL..................................................................35

3.3

Especificacindelmodelo...............................................................................35

3.3.1

DiagramadelSistema...............................................................................36

3.3.2

DiagramadelMNCA_Fuego.....................................................................38

Pgina5

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

3.3.3

ElprocedimientoVecinity........................................................................41

3.3.4

ElprocedimientoNucleus.........................................................................45

3.3.5

DiagramadeBloques................................................................................48

3.3.6

DiagramadeEstados................................................................................49

3.3.7

DiagramadeProcesos..............................................................................51

3.4
4

IMPLEMENTACION..................................................................................................66
4.1

Eleccinlenguajeprogramacin......................................................................66

4.2

SDKSDLPS........................................................................................................66

4.3

Diagramadeclases..........................................................................................68

4.4

Simulacindistribuida.....................................................................................80

4.4.1
5

GeneracinXML...............................................................................................65

LeydeAmdahl..............................................................................................81

EXPERIMENTACION.................................................................................................84
5.1

Estructuradelsimulador..................................................................................84

5.2

Verificacin,validacinyexperimentacindelmodelo..................................84

PLANIFICACINYCOSTES.......................................................................................88
6.1

Fasedocumentacin........................................................................................88

6.2

FaseModeladoyDiseo..................................................................................89

6.3

FaseImplementacin.......................................................................................89

6.4

FaseExperimentacin......................................................................................90

6.5

Fasedelamemoria..........................................................................................90

CONCLUSIONES.......................................................................................................94

TRABAJOFUTURO...................................................................................................96

ANEXOS...................................................................................................................97
9.1

Problemas........................................................................................................97

Pgina6

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

9.2

Formatoidrisi32...............................................................................................97

9.3

XMLgenerado..................................................................................................98

9.4

FicheroXSD....................................................................................................115

9.5

ResuldadossimulacinBehave......................................................................127

9.6

ResultadossimulacinPFCnodistribuido.....................................................139

9.7

Guadeestilodeprogramacin.....................................................................151

9.8

Sandrila..........................................................................................................152

9.9

ReferenciatcnicaymanualFirelib...............................................................153

10

GLOSARIO..........................................................................................................154

11

NDICEDEFIGURAS............................................................................................156

12

BIBLIOGRAFIA....................................................................................................159

Pgina7

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

1. INTRODUCCION
1.1 Presentacin
El proyecto que se presenta es un trabajo en el marco de la simulacin y de los
autmatas celulares, propuesta de Pau Fonseca, director del proyecto y profesor del
departamento de Estadstica e Investigacin Operativa (EIO), con el objetivo de
modelarelcomportamientodelosincendiosforestalesenlenguajeSDL(basadoenel
modelo ya existente de Behave) y en base a esto elaborar la infraestructura para la
creacin de un simulador de incendios forestales para que se pueda ejecutar de
maneradistribuida.

1.2 Motivacin
Existeungranesfuerzoporpartedelhombreenelestudioyelcontroldelosincendios
forestales ya que tienen gran importancia ecolgica y econmica. En las ltimas
dcadascomoconsecuenciadeldesarrolloylaevolucindelasociedadlosincendios
implicanprdidasmuyvaliosaseimportantes.
Laprdidadebosquesyreasforestalesprovocaladisminucindereservasnaturales,
cambios climticos, falta de espacios que generen oxgeno, extincin de animales,
entre otras e incluso la ms importante que no debemos de olvidar, la prdida de
vidashumanas.
Todoestoafectaalavidaenelplanetaydisminuyelacalidaddevida,humana,animal
y vegetal. Como existe este riesgo es necesario conocer el fenmeno, identificarlo y
entenderloselementosqueintervienenenlosincendiosforestales.
Este conocimiento contribuir a la lucha contra los incendios principalmente de tres
maneras.Laprimera,sepodrntomarmedidaspreventivas,deestamanerasepodr
tomar medidas antes de que suceda, con la consecuencia de reducir el impacto. La
segunda, se mejorara la efectividad en la lucha del frente del fuego durante un
incendio y la tercera contribucin ser que se podrn obtener mapas de riesgos de
zonas determinadas, gracias a la informacin que ya poseemos de condiciones
meteorolgicas,informacindelterrenooinclusofactoreshumanos.

Pgina8

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Loquehaceesteproyectomsinteresanteesqueesunproyectorealyenunfuturo
cercanosepodrutilizarensimulacionesdecasosreales,inclusollegaraunmercado
abierto para cualquiera, tanto elmundo universitario como laboral, ya que noexiste
ningnsimuladorcomoeste.

1.3 Problemtica
Unodelosproblemasesqueelcomportamientodeunincendioforestalesunatarea
muycompleja,yaquedependedemuchasvariablesyelementos,porloquesedecidi
utilizarelmodelodelcomportamientodelfuegoyaexistentedeBehavequeestbien
definido.
A pesar que hay algunos simuladores de incendios, no hay ninguno que utilice el
lenguaje SDL, por lo que para un investigador sin conocimientos informticos, le es
difcildeentenderelmodeloqueestutilizando,encambioconellenguajeSDL,alser
msgrfico,esmuchomsdirectoyfcildeentender,poresemotivoseeligieste
lenguajepararealizarelmodelo.
Otro problema que nos encontramos en este proyecto es que los simuladores para
realizarunasimulacinencondicionesrealesnecesitamuchainformacin,loquenos
provocaquealmanejartodaestainformacinsetengaquehacermuchosclculospor
loquesehaceimposibleejecutarunasimulacinrealenunpcdesobremesa,porlo
queseoptporrealizarlaejecucindemaneradistribuidaparaquesepuedaejecutar
por ejemplo en los superordenadores que hay repartidos por todo el mundo, como
ejemploelquetenemosenBarcelonaelMareNostrum.
Elltimoproblemaquenosencontramosesquealrealizaresteproyectoseutilizarn
herramientas desarrolladas, incluso an en desarrollo de otros proyectos de la
universidad (dos proyectos de la UPC y uno de otra universidad) y no sabemos qu
problemasnospodrnllegaraprovocar,loscualesseirnarreglandosobelamarcha.

1.4 Objetivos
Elobjetivodelproyectosepodradividirenvariastareasaconseguir.

Pgina9

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

La primera tarea sera la de buscar y analizar toda la informacin necesaria sobre el


comportamientodelfuego,peronodeunmodelocualquiera,niunmodelorealizado
desdecero,sinoqueutilizaremosunmodelosobreelcomportamientodelfuegoque
ya existe, y es muy usado en las simulaciones de incendios forestales ms comunes,
msenconcretoelmodeloelegidoserelmodelodeBehave.
ElsegundoobjetivoseracogerestemodelodeBehaveytransformarloallenguajeSDL
y a su vez, comprobar que el comportamiento tanto en el modelo Behave como en
nuestromodeloenlenguajeSDLeselmismo.
Para finalizar, el ltimo objetivo que pretendemos alcanzar, ser el de implementar
este modelo en lenguaje SDL, estructurndolo de tal manera que se pueda ejecutar
unasimulacindemaneradistribuida,envariasmaquinasalavez.
Validar el modelo no es parte de este proyecto aunque los resultados obtenidos se
tendrnqueaproximaravaloresquedaranenlarealidadyqueyaestnvalidadosen
elmodelodeBehave.

Pgina
10

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

2 MARCOTEORICO
2.1 Simuladores
Los simuladores son herramientas que nos permiten la emulacin de un sistema, es
decir, reproducir el comportamiento de un sistema, reproducen sensaciones que en
realidad no estn sucediendo. Por lo general se basan en que tienen unas ciertas
entradas (normalmente recogidas de datos reales) que describen el sistema y sus
caractersticas,dondeunprocesovadesarrollandosucomportamientopasoapasoy
alfinalobtieneunasalidaconunresultado.
Lasventajasdelossimuladoressonvarias,nospermitenobservardiversosfenmenos
quenoresultanfcilesdeveryaseaporquenosesabecuandoydondevanaocurriru
otros factores. Los simuladores nos permiten predecir los fenmenos, si tenemos
hecha una simulacin podemos entender su proceso, tomar medidas y actuar en
consecuencia. El estudio de estos fenmenos, no entraa efectos negativos al
reproducirlos ya que son simulaciones y podemos reproducirlo tantas veces como
queramosybajolosefectosquesedeseen,sinningntipodelmite.
En los incendios forestales es comn usar simuladores para predecir el
comportamiento del fuego y deesta manerapoder tomar medidas para disminuir el
impactodelincendioeinclusotomarmedidaspreventivasmsefectivas.Nosiempre
todoestanbonitoenlossimuladoresdeestetipoporquenosiemprelassimulaciones
son validas ya que muchas veces la salida de la simulacin difiere de la real ya que
puedenintervenirfactoresquealterenlasimulacinconlarealidad.

2.2 Caractersticasdelfuegoydelosincendiosforestales
Elfuegoesunareaccinqumicaproducidaporlaignicinylacombustinmateriales,
paraqueestoocurrasonnecesariostreselementos,elcombustibleaquemar,elaire
paraobteneroxigenoyunafuentedecalorqueseacapazdellevarlafuentedecalora
laignicin.Reduciendounodeestostreselementosesposiblecontrolaryextinguirun
incendio.
Losincendiossueleniniciarseenunfocoyelfuegosepropagayseextiendedebidoa
diversosfactorescomolaconveccin,radiacinyconduccindelcalorqueprovocan

Pgina
11

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

las llamas. La principal fuente de incendios son: los rayos, las negligencias, causas
fortuitas, intencionadas o reproducciones de incendios anteriores (el 90% de los
incendiosprovocadosporloshumanos).
Haytrestiposdeincendios:Losincendiosdesuperficie,dondeelincendiosepropaga
porlasuperficiedelterreno,sequemacombustiblequeestenelsuelo(hojassecas,
ramas cadas, etc.), en este tipo de incendio el fuego suele propagarse rpido. Los
incendiosdecopas,sonlosquesepropaganatravsdelascopasdelosarboles,en
estoslasllamasalcanzangrandesalturasysepropagandelacopadeunrbolaotro
mediante la conduccin. Por ltimo estara los incendios de subsuelo, el cual se
propagapordebajodelasuperficiedelterreno,elfuegoquemaysepropagaatravs
delasracesymateriaorgnicaseca.
Para cada tipo de incendio tenemos caractersticas tanto de propagacin como
comportamiento de fuego diferente por lo que nosotros nos basaremos en las de
superficiequesonlascualessebasaBehave.

2.3 Simuladoresdelcomportamientodelfuego
Normalmentelossimuladoresutilizadosenestecampointentanemularcomoavanza
el fuego en un incendio forestal, tomando caractersticas del ambiente donde se
desarrollaelincendioenundeterminadomomentoyloquehacenestratardesimular
comosepropagarenuninstantedetiempoposterior.
Anteriormente explique los tres tipos de incendios que podan suceder en un rea
forestal, de superficie, de copas y subterrneas. Aunque los tres tipos podran
desarrollasesimultneamente(esosignificaquepodraninfluirentreellos)ennuestro
casosolosecontemplarauntipo,losdesuperficie.Estoesporqueelmodelodefinido
por Behave que ser el que modelemos se centra solo en este tipo de incendio sin
tenerencuentaelresto.Aligualqueenelmomentodeunincendiosehaymuchos
factores que determinan como se va a propagar el incendio, como puede ser la
pendiente, la vegetacin, el clima, la humedad, etc. Todos estos factores y muchos
otros interactan entre s e influyen en la propagacin del fuego, naturalmente un
simuladorcompletodeberadetenertodasestasconsideracionesyrelaciones,peroel

Pgina
12

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

tiempodeesteproyectonopermiteabarcarlastodas,porloqueseutilizarelmodelo
Behave que est ms simplificado. Adems si se quisiera obtener resultados en un
tiempo razonableen un simuladorcompleto, por su complejidad nos seraimposible
por lo que por lo general se suele optar por simular solo un tipo de incendio (y
asumiendociertascaractersticasdelentorno),estonoshacequelossimuladoresno
sean tan precisos como realmente se desea, intentado en todo momento buscar la
mximaprecisintiempomsconveniente.
Los incendios forestales tienen unas ciertas caractersticas que hay que tener en
cuentayquesonlassiguientes.
Eltipodecombustible,elclimaylatopologadelsitiodondesedesarrollaelincendio
determinacomosersupropagacin.Estosfactoresharqueelfuegonosepropague,
queseextingaoporelcontrarioqueelfuegocrezcaysepropaguemsrpidamente.
La cantidad y tipo de combustible inflamable que rodea el incendio se conoce como
carga(cantidaddecombustibleporunidadderea),amscargaelfuegosepropagar
msrpidoyconunamayorintensidad.
Otro factor determinante que influye en la propagacin del fuego es el tamao del
materialqueconformaelcombustible,siesmspequeoporejemplosermsfcil
decalentarydequemarqueunmaterialgrandequetardaramsenambosprocesos
(estosedebealarelacinentrelasuperficietotaldelmaterialysuvolumen).
La humedad tambin afecta a la velocidad en que el material es quemado, a mayor
humedadmayorsereltiempoenquelafuentedecalorsequeelcombustibleyhacer
quealcancesutemperaturadeignicin(unmaterialconaltocontenidodehumedad
absorbe el calor del fuego haciendo ms difcil su propagacin). Por ejemplo las
temporadas de altas precipitaciones provocarn que haya un alto contenido de
humedadloqueharqueseamsdifcilquesepropagueelfuego,porelcontrariosi
espocadesequiaamplialaposibilidaddeproducirseunincendioysilohayquese
propaguemsrpido.

Pgina
13

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Latemperaturadeambientetambininfluyeyaqueprovocaqueelcombustibleest
ms o menos calientes, secos o menos secos, dependiendo si es poca de
temperaturasaltasono.
Elvientotienegranimportanciatambinporquedeterminalaformaenqueavanzael
fuego,amsintensidaddeviento,msrpidaserlapropagacinyaqueempujalas
llamasacelerandosupropagacin.Inclusosielvientoesbastanteintensodeterminar
ladireccindepropagacin.Tambinpuedearrastrarcombustibleencendidoycrear
otrosfocosdeincendio.Estefactoresbastanteimpredecible,raravezsusrfagasson
constantesentiempoeintensidad.
La pendiente del terreno afecta porque determina la velocidad y direccin de
propagacindelfuego.Elfuegosepropagamsrpidamentesubiendolapendiente,
ya que el huma y el calor suben por la pendiente, precalentando el combustible y
hacindolomsfcildequemar.
Elsiguientecuadromuestranlosfactoresprincipalesqueinfluyen(favorecenono)en
lapropagacin:
Factor

Influencia

Carga

Favorece

Tamao

Nofavorece

Humedad

Nofavorece

Temperatura

Favorece

Viento

Favorece

Pendiente

Favorece

Losmodelosdepropagacinutilizancaractersticasdelentornodondesedesarrollael
fuegoparadeterminarelcomportamientodelfuegoylosndicesderiesgo.Lasareas
forestales suelen encontrarse gran variedad de especies vegetales pero es bastante
comnquehayauntipodematerialdeterminecomosepropagaraelfuegoencaso
deincendioyesoesprecisamenteloquehacenlosmodelosdecombustible,intentan
representarestosmaterialesparasimplificarsuusoendelosmodelosmatemticosde
propagacindelfuego.

Pgina
14

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Actualmente se utilizan trece modelos para describir los tipos de combustible,


divididos a su vez en cuatro clases: pastos, arbustos, leosos y ramas. Cada uno de
estas clases propaga el fuego de forma distinta. Estos modelos describen las
caractersticas de los combustibles que son justamente las entradas de los modelos
matemticosdelcomportamientodelfuego.
Lasiguientetablamuestralostrecemodelosdecombustible:
Modelo

Grupo

1.PastoCorto

Pastos

2.Pastoyarbustos(pequeos)

Pastos

3.Pastoalto(opaja)

Pastos

4.Matorral

Arbustos

5.Arbustospequeos

Arbustos

6.Arbustosconramaspequeas

Arbustos

7.Arbustosconmuchasramas

Arbustos

8.Pastouhojascortas(debajoarboles)

Leosos

9.Arbustospequeos(debajoarboles)

Leosos

10.Arbustossecos(debajoarboles)

Leosos

11.Algunasramascadas

Ramosos

12.Msramascadas

Ramosos

13.Muchasramascadas

Ramosos

Saber si realmente es posible predecir el comportamiento del fuego, depende de la


precisinquesebuscaenlaprediccin,haytantosfactoresatenerencuentayque
influyen en mayor o menor medida al comportamiento del fuego que hace que se
descartelaideadeprediccionesabsolutas.
Richard Rothermel ha definido un modelo de comportamiento del fuego asumiendo
queelmismoavanzasobresuperficiesconcombustiblecontinuo.Estemodeloevala
laenergageneradaporelfuego,latransmisindecalordesdeelfuegoalcombustible
prximo al fuego y la energa absorbida por el combustible, se consideran los
combustibles muertos y vivos, sus contenidos de humedad, el efecto del viento, la
pendienteenlatransferenciadecalor,lacarga,locompactoqueestaelcombustible,

Pgina
15

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

el tamao de la partculas del combustible, etc. Todo esto determina la forma y


velocidad en que el fuego se propaga. No se considera nimodela el fuego de copas,
torbellinosdefuegoylacreacindemsfocosdefuego.
El modelo de Rothermel es uno de los ms utilizados para la prediccin del
comportamiento del fuego, la mayora de los simuladores del comportamiento se
basansusclculosenestemodeloqueagrandesrasgoscalculanelndicedemxima
propagacinylaintensidaddereaccindelfuegoconociendociertaspropiedadesdel
combustibleydelambiente.

2.4 Simuladoresactuales
Enlaactualidadexistendiversossimuladores(FireBehaviorandFireDangerSoftware
s.f.) Para predecir el comportamiento del fuego, a continuacin expondr los ms
utilizados.
BehavePlus:SeconsideraelsucesordeBehave(Andrews1986),esunsimuladorque
seejecutabajoWindows.BehavePlusesunacoleccindemodelosquedescribenel
comportamiento del fuego, su entorno y sus efectos. Es un programa recomendado
para usuarios experimentados o al menos familiarizados con el problema, aunque
tiene la opcin de utilizar una serie de ventanas que permiten el ingreso de los
parmetrosymuestralosresultadosdeunaformaamigableyfcildeutilizar.Muestra
relaciones entre humedades, viento, pendiente e ndice de propagacin de forma
grfica despus de la simulacin. Los resultados son mediante grficas, tablas,
diagramasypuedeserutilizadoporprogramasexternos.

Pgina
16

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura1:EntradadedatosenBehavePlus

Figura2:SalidadeBehavePlus,comparativade4modelosdecombustible

Farsite:Esunmodelodesimulacindecrecimientodelfuego,esunsimuladorquese
ejecutabajoWindowsytieneunainterfazgrfica.Necesitacomoentradainformacin
desistemasdeinformacingeogrfica.Utilizainformacinsobrelatipologa,elclima,

Pgina
17

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

el viento y el combustible, este simulador incluye modelos de propagacin en


superficie, en copas y spotting, realiza las simulaciones en dos dimensiones. Es un
modeloparalasimulacinentiempoyespaciodelapropagacinycomportamiento
defuegosbajocondicionesdeterreno,combustibleyclimaheterogneas.Estbasado
en un principio de propagacin de ondas propuesto por Huyens. Su salida es la
proyeccin del permetro del frente del fuego y el comportamiento del fuego,
pudindoseexportaraotrasaplicacionesosistemasdeinformacingeogrfica.Esuna
aplicacin orientada a usuarios con conocimientos sobre combustibles, clima,
topologas,situacionesdeincendios,etc.

Figura3:PantalladesimulacinenFarsite

Nexus: es una aplicacin que conecta modelos de prediccin de fuegos de copas y


superficies,estilparaestudiarelriesgodecopaspotencialyformasalternativasde
tratarlos. Contiene tambin herramientas visuales que son tiles para entender la
interaccin entre los incendios de copas y superficies. Est destinado a usuarios
familiarizados con Behave o BehavePlus, usuarios que ya posean un conocimiento
sobreelcomportamientodelfuegoysobrelosmodelosdefuegodecopas.

Pgina
18

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura4:EntadadedatosenNexus

Fofem:esunaaplicacinquemodelalosefectos,tantodirectoscomoindirectos,que
son consecuencia de los incendios. Establece los efectos secundarios como la
mortalidaddelosarboles,consumicindecombustible,elhumooelcalordelsuelo.Es
tilparaplanificarmejorlosincendioscontrolados.

Pgina
19

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura5:GrficodecombustibleenFofem

Despus de ver unos cuantos simuladores que estn actualmente en el mercado,


podemosverquetodaslasaplicacionesnecesitanqueelusuariotengaunaltogrado
de conocimiento sobre el comportamiento del fuego y conocer los modelos que
utilizan estas aplicaciones. El resultado de las simulaciones, en general, son bastante
pobresgrficamenteylasimulacinsetienequerealizarenunanicacomputadora.
Por eso las ventajas que tiene el simulador de este proyecto respecto del software
actualson:

Aniveldeusuario,esmsfcilentendercmofuncionaelmodelo,yaquese
presentadeformagrficaendiagramasSDL,noescondicinnecesariaqueel
usuarioseaunexpertoenincendios.

El resultado de la simulacin se podr ver en VRML en Google Earth, ms


visualquelastablasygrficosquemuestranlasaplicacionesactuales.

Permite ejecutar la simulacin de forma distribuida, ninguna de las ofertas


actualeslopermite.

Pgina
20

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

No todo son ventajas claro est, como desventaja principal tiene, que de momento
soloseestdesarrollandoelmodeloparaincendiosdesuperficie,entrabajosfuturos
sepuedenseguirimplementandolosdemstiposdeincendios.

2.5 LenguajeSDL
Uno de los lenguajes que encontramos para formalizar modelos de simulacin es el
lenguajeSDL(TelecommunicationstandardizationsectorofITU1999),esunlenguaje
orientado a la especificacin y diseo de sistemas de telecomunicaciones que
funcionanentiemporeal.
Existen dos formas sintcticas diferentes para representacin de sistemas mediante
SDL,laprimeraesSDL/GR(GraphicalRepresentation),lacualesunleguajegrficoque
define la estructura y flujos del control del sistema. La segunda representacin es la
SDL/PR(PhraseRepresentation),dondeesteesunlenguajedeprogramacin.Parala
realizacin de este proyecto hemos usado la representacin SDL/GR ya que nos
permite trabajar mejor a la hora de crear el modelo de la propagacin del incendio
forestal.
Estelenguajesecomponedeentidadesenformadejerarqua,dondelaprincipalesel
sistema,elcualestcompuestoporbloques.Losbloquesestnconectadosentresy
con el entorno mediante canales (que transportan seales). Cada bloque est
compuesto por procesos y cada procesos est definido por una maquina de estados
finitaextendida,convariables,parmetros,eventosytemporizadores.Losprocesosse
comunicantambinsecomunicanentreellosporcanalesquetransportanseales.
El sistema es la entidad de ms alto nivel y en ella podemos encontrar todo lo que
queremosmodelar,est separado del entorno por la frontera del sistema,el cual se
comunicamediantecanalesquetransportanseales.Elsistemaestarcompuestopor
unoovariosbloques.
Los bloques tienen una o ms definiciones de procesos del sistema. El bloque se
encarga de agrupar procesos que realizan cierta funcin, estos bloques tambin se
comunicanmediantecanalesquetransportanseales.

Pgina
21

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Los procesos estn al nivel ms bajo de laespecificaciny se representan como una


mquina de estados finita extendida, la cual contiene unos ciertos estados finitos y
existentransicionesparapasardeunestadoaotro.Cada transicinvieneproducida
por una seal que viene de otro proceso o del entorno y que permiten manipular
variableslocalesdelproceso,enviarsealesoinclusoejecutarprocedimientos.Pueden
existir varias instancias de un mismo proceso ejecutndose concurrentemente o de
instancias de procesos distintos, los procesos tienen acceso al tiempo absoluto para
realizarclculosdetiempos.Haysealesdeentradaydesalida,paralarecepcinde
seales los procesos tienen una nica cola de seales por proceso y se van
suministrandomedianteFIFO(laprimeraqueentraeslaprimeraensalir).
Respectoalcanalquetransportasealeshayquedecirqueestacomunicacinentre
bloques(oelentorno)puedeserenambossentidos,peronuncapuedehaberuncanal
queempieceytermineenunmismobloque.Lassealessonunflujodeinformacina
transportar.
Lamaneraderepresentartodoestoeslasiguiente:
RepresentacinSDL/GR

Pgina
22

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

bloque

Figura6:Bloque

Figura7:Proceso

Figura8:Canal

Figura9:Seal

Figura10:Declaracin

Figura11:Procedimiento

Figura12:Comentario

Figura13:Estado

Figura14:Eventodeentrada

Figura15:Eventodesalida

Figura16:Tarea

Pgina
23

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura17:Lneadeflujo

Figura18:Decisin

Figura19:Estadoinicial

2.6 Sistemasdeinformacingeogrfica
Un Sistema de Informacin Geogrfica (SIG o GIS, en su acrnimo ingls Geographic
Information System) es una integracin organizada de hardware, software y datos
geogrficos diseado para capturar, almacenar, manipular, analizar y desplegar en
todas sus formas la informacin geogrficamente referenciada con el fin de resolver
problemas complejos de planificacin y gestin. Tambin puede definirse como un
modelodeunapartedelarealidadreferidoaunsistemadecoordenadasterrestrey
construido para satisfacer unas necesidades concretas de informacin. En el sentido
msestricto,escualquiersistemadeinformacincapazdeintegrar,almacenar,editar,
analizar, compartir y mostrar la informacin geogrficamente referenciada. En un
sentido ms genrico, los SIG son herramientas que permiten a los usuarios crear
consultasinteractivas,analizarlainformacinespacial,editardatos,mapasypresentar
losresultadosdetodasestasoperaciones.
La tecnologa de los Sistemas de Informacin Geogrfica puede ser utilizada para
investigaciones cientficas, la gestin de los recursos, gestin de activos, la
arqueologa, la evaluacin del impacto ambiental, la planificacin urbana, la
cartografa,lasociologa,lageografahistrica,elmarketing,lalogsticapornombrar
unospocos.Porejemplo,unSIGpodrapermitiralosgruposdeemergenciacalcular
fcilmentelostiemposderespuestaencasodeundesastrenatural.
El SIG funciona como una base de datos con informacin geogrfica (datos
alfanumricos) que se encuentra asociada por un identificador comn a los objetos

Pgina
24

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

grficos de un mapa digital. De esta forma, sealando un objeto se conocen sus


atributose,inversamente,preguntandoporunregistrodelabasededatossepuede
sabersulocalizacinenlacartografa.
La razn fundamental para utilizar un SIG es la gestin de informacin espacial. El
sistemapermitesepararlainformacinendiferentescapastemticasylasalmacena
independientemente, permitiendo trabajar con ellas de manera rpida y sencilla, y
facilitandoalprofesionallaposibilidadderelacionarlainformacinexistenteatravs
de la topologa de los objetos, con el fin de generar otra nueva que no podramos
obtenerdeotraforma.
Los datos SIG representan los objetos del mundo real (carreteras, el uso del suelo,
altitudes).Losobjetosdelmundorealsepuedendividirendosabstracciones:objetos
discretos(unacasa)ycontinuos(cantidaddelluviacada,unaelevacin).Existendos
formasdealmacenarlosdatosenunSIG:rasteryvectorial.
Untipodedatosrasteres,enesencia,cualquiertipodeimagendigitalrepresentada
en mallas. El modelo de SIG raster o de retcula se centra en las propiedades del
espaciomsqueenlaprecisindelalocalizacin.Divideelespacioenceldasregulares
dondecadaunadeellasrepresentaunnicovalor.
En un SIG, las caractersticas geogrficas se expresan con frecuencia como vectores,
manteniendolascaractersticasgeomtricasdelasfiguras.Enlosdatosvectoriales,el
inters de las representaciones se centra en la precisin de localizacin de los
elementos geogrficos sobre el espacio y donde los fenmenos a representar son
discretos,esdecir,delmitesdefinidos.Cadaunadeestasgeometrasestvinculadaa
unafilaenunabasededatosquedescribesusatributos.Paramodelardigitalmentelas
entidadesdelmundorealseutilizantreselementosgeomtricos:elpunto,lalneayel
polgono.
Lasventajasdeutilizarelrasteresquelasestructuradelosdatosesmuysimple,las
operacionesdesuperposicinsinsencillas,elformatoesptimoparavariacionesaltas
dedatosyelbuenalmacenamientodeimgenesdigitales.

Pgina
25

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Las desventajas de los datos raster son que necesitan mayor requerimiento de
memoria,lasreglastopolgicassonmsdifcilesdegenerarylassalidasgraficasson
menosvistosasyestticas.
Lasventajasdelosdatosvectorialessonquelaestructuradedatosesmscompacta,
hay unacodificacin eficiente dela topologa y las operaciones espaciales, tiene una
buena salida grafica, tienen mayor compatibilidad con entornos de bases de datos
relacionalesypermiteunamayorcapacidaddeanlisis.
Las desventajas de los datos vectoriales son que la estructura de datos es ms
compleja, las operaciones de superposicin son difciles de implementar y de
representar, pierde eficacia cuando la variacin de datos es alta, es un formato ms
difcildemanteneractualizado.
Ningunodelosdostiposdedatosesmejorqueelotro,simplementetienenutilidades
diferentes,ennuestrocasoutilizaremoslosdatosrasterquesonlosquenecesitamos
paralasimulacin.

2.7 Idridi32
Idrisi23 es un sistema de informacin geogrfica principalmente de datos raster,
aunque se puede incorporar informacin vectorial, pero que posiblemente, segn el
problema,tambinseacabartransformandoendatosraster.
Estesistemasebasaendostiposdeficheros,unoparadosyotroparametadatos.Los
ficheros de datos contienen la tabla bidimensional coordenada valor del atributo,
mientras que los fichero de metadatos contienen la informacin sobre los propios
datos,elnombre,suorigen,laprecisin,etc.,vieneasercomoladocumentacindel
fichero de datos. Cada uno de estos ficheros es almacenado por separado y con
extensionesdiferentes.
Losficherosdedatosserepresentanmedianteunalistasecuencialdevalores,donde
elprimervalorserelquerepresentelaceldasuperiorizquierdadelatablayelltimo
laceldainferiorderecha.

Pgina
26

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Elficherodemetadatoseselqueseencargaguardarlainformacindelosdatos,de
decircuntasfilasycolumnastienelatablaydecmosehanderepresentarlatabla
demanerabidimensional.
Respectoalamaneraquetieneidrisi32derepresentarlosdatosdemodovectorial,
decir que como tiene que reconocer, puntos, lneas y polgonos, todos estos han de
estar en ficheros diferentes, no detallar como estn compuestos porque no se
utilizarnparaesteproyecto.

2.8 SDLPS
SDLPS es un simulador distribuido que permite la definicin y ejecucin de modelos
utilizandoellenguajeSDL,conunaextensinparapermitirladefinicincompletade
tiempo en los modelos de simulacin. Esta definicin completa del comportamiento
del modelo permite su simulacin sin la necesidad de la aplicacin, simplificando los
procesosdevalidacinydeverificacin.

Figura20:SoftwareSDLPS

Pgina
27

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

2.9 Firelib
Firelib (Bevins s.f.) es una librera desarrollada en lenguaje c para la simulacin de
incendiosforestalesbasadosenalgoritmosdeBehaveparapredecirlapropagacindel
fuego en dos dimensiones. Esta librera a grandes rasgos calcula el ndice de
propagacin,laintensidad,lalongituddelallamaylaalturadelabrasaparaincendios
desuperficie.
Contiene trece funciones, pero con cuatro de ellas se tiene suficiente para crear un
simuladorsimpleperoalavezeficienteyfuncional,talycomonecesitamosparaeste
proyecto.
Este simulador recibe como entradas, el mapa con el frente del fuego inicial y los
parmetrosdeentradanecesariosqueaportantodalainformacinnecesariaparala
prediccinydacomoresultadodesalidaunmapadelincendiosimuladoparauncierto
instanteposterioralinicial.
Losparmetrosdeentradanecesariosparalaprediccinsonlossiguientes:

Elnumerodelmodelodecombustible(unodelostrecemodelosdefinidospor
lalibrera)

Elcontenidodehumedaddelcombustiblemuerto(paraunahora,diezhoraso
cienhoras)

Elcontenidodehumedaddelcombustibleherbceovivo

Lavelocidadydireccindelviento

Ladireccineinclinacindelterreno

Losmapasrepresentanelterrenodondesedesarrollaelincendio.Estosmismosestn
divididos en celdas y cada celda contiene el momento en el que el fuego alcanza el
centrodelamisma(unvalordecerosignificaquenuncafuealcanzada).
Si el tipo de combustible encontrado en el terreno no coincide con ninguno de los
trecemodelospropuestosporlalibrera,permitecrearuntipodecombustiblenuevoy
definirtodassuscaractersticasparaqueseamsrepresentativodelcombustiblereal.

Pgina
28

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Parahacerestosedebedeespecificaruncatalogodecombustiblenuevo,elmodelo
decombustibleylasparticularidadesqueconformanelcombustible.
En el momento de la simulacin, el simulador itera sobre cada una de las celdas del
mapa propagando el fuego de una celda a otra hasta llegar a dos casos, llegar a un
puntoenquelaintensidaddelfuegonoessuficientecomoparaseguirpropagndose
ollegaralbordedelterreno.
Endefinitivaelprocesodesimulacinsepodraresumirencuatropasos(unoporcada
funcinprincipaldelalibrera).Todosestospasosserealizanporcadaceldadelmapa
quepuedellegarapropagarfuegohaciaunaceldavecina.
Lospasosdelasimulacinsonlossiguientes:
NmeroPaso

Entradas

Salidas

Combustible

Caractersticasdel

Caractersticasgeneralesdel

combustible

combustible:carga,
densidad,altura,etc.

Humedad

Humedaddelcombustible

ndicedepropagacinsin
viento,nipendiente.
Intensidaddereaccin,
humedaddeextincindel
combustiblevivo,etc.

Vientoypendiente

Direccinyvelocidaddel

ndicedemxima

viento,direccineinclinacin propagacinysudireccin
delterreno
Direccin

Direccindemxima

Intensidaddepropagacin,

propagacin

longituddelallama,alturade
lasbrasasporcadaunadelas
8direccionesprincipales.

Enelprimerpaso,seestablecenyseasignanlosvaloresquetienenrelacinconeltipo
de combustible. Aunque en la naturaleza se pueden tener distintos tipos de
combustibleenelmismorea,enestesimuladoreltipodecombustibleseconsidera
uniformetantoespacialcomotemporalmente.

Pgina
29

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

En el segundo paso, se tiene como salida el ndice de propagacin sin considerar


todavalainfluenciadelvientoydelapendiente.Loquedeterminaenesteprocesola
intensidad de propagacin es el tipo de combustible y el contenido de humedad del
combustible (las caractersticas se describen en el paso uno y la informacin del
contenidodehumedadeslaentradadeesteproceso).
El tercer paso obtiene el ndice de la mxima propagacin y la direccin en la que
ocurreestamximapropagacin.Paraobtenerestosdosdatosesnecesarioconsiderar
la intensidad y la direccin del viento, as como la inclinacin y direccin de la
pendiente.Aunquelapendienteseconsideratambinuniformeentodoelterrenoy
todalasimulacin,seutilizaporqueelmodelodepropagacindeRothermelmodelael
efectoproducidoporlapendientedelamismaformaqueelefectoproducidoporel
viento,combinndolosytratndolosenconjuntoparapoderdeterminarelnguloen
queelfuegoalcanzasumayorvelocidaddepropagacin.
Enelltimopaso,elcuarto,seobtienelaintensidadyelndicedepropagacinpara
cada una de las ocho direcciones principales (norte, noroeste, oeste, sudoeste, sur,
sudeste, este y noreste). En este paso se obtiene en qu momento el fuego llega a
cada una de las celdas vecinas, en el caso de llegar claro, dependiendo de la
propagacin, de la direccin de mxima propagacin, del crecimiento elptico del
modelo,ladireccinyladistanciaenqueseencuentraelfuegoenrelacinacadauna
delasceldasvecinas.

2.10

Autmatascelulares

Losautmatascelulares(Wolfram'ss.f.)esunametodologaquepermiteelmodelado
desistemasdinmicoscomplejos,devariablesytiempodiscretos,esdecirquetantoel
tiempo, como el espacio y los estados son discretos, creado originalmente por Von
NewmanyS.Ulam.
Un autmata celular es un conjunto infinito ndimensional de celdas ubicadas
geomtricamenteenunaparrillaycadaceldatieneunestadoelegidodeunalfabeto
queesfinito.Cadaceldacontieneelmismomecanismodeclculoquelasotrasyse
pueden conectar entre s. El estado de las celdas se actualiza simultneamente y de

Pgina
30

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

formaindependientedelasdemsenpasosdetiempodiscretos,paraellosedefine
unavecindaddeunacelda,queesunconjuntodeceldascercanas,estavecindades
homogneaparatodaslasceldas.
Losestadosdelasceldasseactualizandeacuerdoaunareglalocal,estoquieredecir
queelestadodeunaceldaenunmomentodadoslodependedesupropioestadoen
el instante previo y de los estados de sus vecinos en ese instante previo. Todas las
celdasseactualizandemanerasincronizada,peroelestadodetodalaceldaavanzaen
pasos de tiempo discretos. Las celdas actualizan sus valores usando una funcin de
transicin,quetomacomoentradasuestadoactualyunconjuntodeceldascercanas
(lavecindad).
UnejemploquemuestralavecindaddeMooredeunaceldaenlafilai,columnaj.

Figura21:VecindaddeMoore

Porlotantounautmatacelularsepodradefinirespecificandotresparmetros:

Unconjuntodeestados

LavecindaddeMoore

Lafuncindetransicin

Apesardequelosautmatascelularessonunaherramientapoderosa,tambintienen
unasrestriccionesimportantes.Porunaparte,seasumequeenelespaciodeceldas,
lasceldasestnactivassimultneamente,comoenunsistemaparalelo,perohayuna
restriccin importante en la actividad simultnea: todas cambian de estado
simultneamente. Otro problema es que el espacio de celdas es infinito, para que
puedasersimulado,elmodelodebedeacotarseaunnumerofinitodeceldasencada
pasoylaformamsfcildehacerloeslimitarelmodeloaunreafinita,loquehace
quesepierdahomogeneidad,estoseveclaroenelcasodelosbordesdelaparrilla,

Pgina
31

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Cmo se deberan de tratar?, para solucionar esto se puede hacer mediante


aproximaciones, aunque se pierde precisin. El gran numero de celdas hace que en
general se estn haciendo clculos innecesarios, por ejemplo una celda ya no puede
cambiardeestadosisuvecindadnohacambiadodeestado.

Pgina
32

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

3 MODELADOyDISEO
Comoenlamayoradecasos,eneldesarrollodesoftware,laclaveeshacerunbuen
diseoyenesteProyectoFinaldeCarreraconcretamenteeslapartemsimportante,
por lo que es la parte donde hay que tener ms cuidado y realizarla de lo ms
minuciosamenteposible.Unaveztenemosdefinidocomosecomportanlosincendios
forestalesenlanaturaleza,ahoratenemostodaesainformacinparacreareldiseo
tcnicoquesimuleunincendioforestalreal.

3.1 Particularidadesdelmodelo
Como el campo de la simulacin de incendios forestales se ha podido ver en el
apartadodemarcoterico,esmuyextensoymuycomplejohayquetenerencuenta
unascaractersticasyrestriccionesquedebemosdetenerencuentapararealizareste
proyecto.
Para modelar el comportamiento del fuego este proyecto se basar en el modelo
Behave, que utiliza un modelo matemtico elaborado por Richard Rothermel, los
cualesyaestnvalidados.
Estemodelotienevariasparticularidades,unadeellasesquesecentranicamenteen
losincendiosdesuperficie,nosetieneencuentalosincendiosporcopasporejemplo.
Otroaspectoatenerencuentaesquesetomacomoentradaqueelcombustibledela
zonaafectadaescontinuo,esdecir,quealrealizarlasimulacintomaunnicotipode
combustibleparatodalazona.
Lapendientedelterrenoseconsiderauniformealolargodelterrenoyalolargode
todalasimulacin.
Un parmetro dinmico como es el viento, que seguro que vara y sigue un
comportamiento difcil de determinar a lo largo de un incendio forestal, en nuestro
modelodesimulacintambinlocontabilizaremoscomoesttico.
Todas estas restricciones y que a veces los datos tampoco pueden ser medidos
directamente (hay que tomar estimaciones), hacen que haya imprecisiones en los

Pgina
33

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

datos de entrada, aunque para el caso de los incendios forestales seguro que la
simulacinnosdaunresultadoaproximadoalarealidad.
Para conseguir el objetivo de que el modelo se ejecute de manera distribuida, al
modelorealizadoenlenguajeSDLestndarselehanaadidoextensionesespeciales,
quenosonpropiasdelSDLyqueseexplicarnenelprximoapartado.

3.1.1 Extensiones
Gracias a dos extensiones extras al lenguaje SDL conseguiremos definir nuestro
modelo de manera que pueda ejecutarse de manera distribuida y estas dos
extensionesson:

LaextensinCellDEVS

Laextensinm:nCAkcellularautomata

El formalismo CellDEVS (Javier Ameghino s.f.) resuelve los problemas que tiene el
autmata celular cuando se usa para simular sistemas complejos, ya que el uso del
tiempo discreto trae acarreada restricciones en la precisin del modelo. En el
paradigmaCellDEVScadaceldasedefinecomounmodeloatmicoconunconjunto
deestadosparalosvaloresdesuvecindad,uncomportamientopropioyunademora
deactualizacin.Cadaceldatieneasociadaunademoradetiempo,estopermitediferir
laejecucin,delafuncindeclculoylosresultadosdesalidadecadaceldanoson
enviadosinstantneamentesinohastaqueseconsumaeltiempodedemora.
HayquedestacarqueestaextensinesdellenguajeDEVS,noeslenguajeSDLyest
actualmente pendiente de estandarizacin. La manera de representarlo en nuestros
diagramasenlenguajeSDLsermedianteelgrficodeextensinyunavariableconlas
demoradetiempo.

Figura22:ExtensinCellDevs

Encuantoalaextensinm:nCAkcellularautomataloquenospermitees,poderenviar
sealesaunaovariasceldasalavez,paraquecomiencenasimularse.Deestamanera

Pgina
34

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

permitimos que una celda pueda propagar el fuego a sus celdas ms prximas, su
vecindad,queennuestrocasopuedellegaraunmximodeochoceldasvecinas.
En este caso la extensin forma parte del lenguaje SDL, aunque todava no se ha
cursado los procedimientos legales para que acepte su estandarizacin, pero
prximamentesepodrverenlaSummerSimulationConference(Internationals.f.)a
travsdeunposterdelasimulacindelasucesindeFibonacci.Nuestrosdiagramas
enleguajeSDLrepresentaranestaextensinmedianteelgrficodeextensinydentro
unaarrayconlosnmerosdelasceldasquesehandepropagar.

Figura23:ExtensinM:NCAk

3.2 EspecificacinconellenguajeSDL
SehaescogidoellenguajeSDLpararealizarestaespecificacin,porqueesunlenguaje
utilizado para disear sistemas distribuidos y que se utiliza y se aplica mucho en el
campodelasimulacin.
UnadelasprincipalescaractersticasquedanventajaallenguajeSDLrespectoaotros
lenguajes como puede ser el UML, es que este es ms verstil, manejable y su
especificacinenSDL/GRserealizademaneragrfica,loquehacequeseamslegible
y factible para cualquier persona que cualquier otro lenguaje. La especificacin se
realizadeunamaneramsnatural,loquefacilitaquepersonasajenasalainformtica
tambin puedan entender y aportar informacin a los modelos diseados con el
lenguajeSDL.

3.3 Especificacindelmodelo
Mediante el lenguaje SDL se especificar el modelo de simulacin de los incendios
forestales,elcomportamientodesusceldasydetodosloscomponentesqueforman
partedeestesistema.
Para el modelado se ha dividido la especificacin en cinco secciones, utilizando el
enfoquedearribahaciaabajo,clsicoenlasingenieras,empezaremosdesdeelnivel
msaltohastallegaralnivelmsbajo.Lasseccionessonlassiguientes:

Pgina
35

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Eldiagramadelsistema

EldiagramadelMNCA

ElprocedimientoVecinity

ElprocedimientoNucleus

Eldiagramadebloques

Eldiagramadeestados

Losdiagramasdeprocesos

Hayquetenerencuentaqueparallegaralmodelofinal,primerosediseunmodelo
queloquepretendaeraunasimulacinglobal,bsicamentequefuncionaracomoun
nicoconjuntodeceldasdondeestabatodoelterrenoaincendiarydeaquobtener
unasalidacorrecta.
Despus de ver que los resultados del primer modelo eran satisfactorios se pas a
modificarloparahacerqueenlugardetrabajarcomounconjuntosetrabajaraanivel
decelda,permitiendoasunmodelodistribuidoqueeraelobjetivodeesteproyecto.
Para conseguir que el modelo final se pudiese ejecutar de manera distribuida al
lenguajeseletuvoqueaadirunasextensionesquenosonpropiasdellenguajeSDL,
estasextensionesseaadierontantoenlosdiagramasdelmodelocomoenelXML.
Deestamaneraenlaespecificacinsedetallarelprimermodeloyelmodelofinal,
consusrespectivasdiferencias.
3.3.1 DiagramadelSistema
ElsistemainicialestabacompuestoporunainstanciadeBlockCelda,elmotor,elrelojy
el entorno. La instancia de BlockCelda es la diferencia respecto al modelo final.
BlockCelda se corresponde con toda la zona de terreno a simular incendiar,
tratndola globalmente como una unidad de terreno y en este primer modelo sin
distinguir celdas ni parcelas de terreno. El resto de instancias, el motor, el reloj y el
entorno de este primer modelo funcionan igual que en el modelo final, as que, se
detallarnmsadelanteenlaversindefinitiva.Enlosdoscasosnohaysealesque
viajen hacia, ni desde el exterior ya no se pueden modificar los datos de entrada en

Pgina
36

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

tiempo real, esto se est investigando en otros proyectos y en un futuro prximo se


podraplicarampliacionesdeesteproyecto.

system

SystemCelda

BlockCelda

Figura24:DiagramaSistemaversin1

El sistema del modelo final est compuesto por diversas instancias, referentes al
autmata celular, el motor, el reloj y el entorno. En este modelo final habr N
instancias que representaran los bloques del autmata celular, segn el tamao del
terreno a incendiar, mientras que del resto de instancias, el motor, el reloj y el
entorno,solohabrunanicainstanciaporcadaunadeellas.
Elentornoeselquegestionalainteraccindelusuarioyelsimulador,seencargade
enviaralmotorlaconfiguracininicial,inicializarlasimulacin,indicarcundosehade
empezar, realizar la simulacin paso a paso y tambin es el responsable de parar la
simulacin,mostrandodeunamanerauotralasalidaresultadodelasimulacinal
usuario.
El motor es el que gua al proceso de la simulacin desde el estado inicial al estado
finalyelrelojeselquemarcaralmotorcuandohadeactuar.
Elautmatacelular,queesunaextensindellenguajeSDL,estcompuestoporuna
N instancias de este bloque llamado MNCA_Fuego, una instancia de este bloque
representaaunanicaceldaparceladelterrenoasimular(enlaprimeraversinse
cogatodoelterreno)ycontienetodalainformacinnecesaria(distribuidaporcapas),
parasersimuladaporssola,aunquelacapaprincipalserelestado,queserlaque
determine su comportamiento a lo largo de la simulacin. Esta es la gran diferencia

Pgina
37

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

respecto al modelo anterior, en este caso los datos de las capas que necesita cada
celda, se cargan en cada instancia, cada una realiza los clculos necesarios con la
informacinqueyaposeeylosresultadosobtenidosseguardanporseparado,estolo
quenospermiteesdistribuirelmodelodelsistema.

Figura25:Diagramadelsistemaversinfinal

3.3.2 DiagramadelMNCA_Fuego
Estediagramanoexisteenlaprimeraversin,porquenoseutilizabaningunainstancia
delMNCA_Fuego,demaneraqueennuestromodelofinalquedcomovoyaexplicar
acontinuacin.
Comoyahecomentadoanteriormente,elMNCA_FuegorepresentaunaoNinstancias,
donde cada una se corresponde con una parcela del terreno a simular. A este nivel,
tenemos que definir las dimensiones del autmata celular, es decir, las dimensiones
delterrenoaincendiaryloexpresamosdelasiguienteforma:
Existe un valor entero que hace referencia a las dimensiones del terreno y es el
siguiente:
intmnca_DIM=2;
Enestecasocomoesunasimulacinendosdimensioneslorepresentoconun2.
Hay otros dos valores definen el tamao del terreno, es decir, el ancho y alto del
terrenoforestal.
intmnca_D1=101;

Pgina
38

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

intmnca_D2=101;
Estecasoporejemploseraparaunterrenode101celdasx101celdas.
Cadainstanciadeceldahadecontenerya,todalainformacinnecesariaparapoder
realizar todos los clculos necesarios en su simulacin, por lo que aqu es donde
tenemosquedeclarartodaslascapasconlainformacinrelativacadacelda,queson
lasiguiente:
Los valores que vienen a continuacin definen el contenido de humedad del
combustiblemuerto,pasada1hora,10horasy100horasrespectivamente.
doublemnca_M1[];
doublemnca_M10[];
doublemnca_M100[];
Elsiguientevaloreselmapadelasimulacinynosmarcarelinstantedetiempoen
que el fuego llega al centro de la celda, como en un principio no hay ninguna celda
incendiadatodoslosvaloresestarnacero,queriendodecirquenofuealcanzadapor
elfuego.
doublemnca_BlockCelda[];
Ladireccindelvientolaobtendremosenlasiguientevariable.
doublemnca_MDirVents[];
Elcontenidodehumedaddelamaderaydelahierbalosdefinimosenlassiguientes
variables.
doublemnca_MFusta[];
doublemnca_MHerba[];
Y la informacin que corresponde a la orientacin y pendiente del terreno las
definimosas.

Pgina
39

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

doublemnca_MOrientacio[];
doublemnca_MPendent[];
Lavelocidaddelvientosemantieneenestavariable.
doublemnca_MVelVents[];
Eltipodecombustiblequecontienecadacelda.
doublemnca_Model[];
EnestediagramatambinsedefinendosprocedimientoscomosonVecinityyNucleus,
enestepuntosolocomentarporencimaloquehacen,msadelanteseentrarms
endetalledecmofuncionan.
ElprocedimientoVecinityloquehaceescalcularlavecindaddeMooredeunacelda,
recibe como parmetro la posicin de la celda y nos devolver su vecindad (celdas
vecinas)respectodeladada.
EncambioelprocedimientoNucleuscalculacualeslaceldaactualysalvartodoslos
valoresimportantesparapodersacarconclusionesdelasimulacin.

Pgina
40

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura26:DiagramadelMNCA_Fuego

3.3.3 ElprocedimientoVecinity
Comoestamosutilizandounautmatacelularnecesitamosunafuncinquecalculela
vecindaddeMoore,ennuestrocasoendosdimensiones,enconcretoseencargarde
encontrarlasochoceldasquerodeanaunaceldaatratar,justamentelaceldaquese
estarsimulandodemaneradistribuida.
ElprocedimientoVecinityysusparmetrossonlossiguientes:
Vecinity(int ignMap, double m1Map, double m10Map, double m100Map, double
mherbMap, double mwoodMap, double slpMap, double aspMap, double wspdMap,
doublewdirMap,doubleignM0,doubleignM1,doubleignM2,doubleignM3,double
ignM4,doubleignM5,doubleignM6,doubleignM7);

Figura27:ProcedimientoVecinity

Pgina
41

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Al llamar a este procedimiento nos encontramos en una celda en concreto que se


encontrardentrodeunamatrizenlafilai,columnaj.Loquepretendemosesobtener
todalainformacinnecesariaparapoderejecutarlasimulacinenestacelda,porlo
queselepasantodossusparmetrosporreferencia.
Guardaremoslainformacinrelativaalaceldaactualenlosparmetrossiguientes:
Contieneeltiempodeignicinenelparmetro
intignMap.
Lostresparmetrossiguienteshacenreferenciaalahumedaddecombustiblemuerto
pasadas1,10y100horas
dobulem1Map
doublem10Map
doublem100Map,
Elcontenidodehumedaddelahierbaydemaderaestarenlosparmetros
doublemherbMap
doublemwoodMap
Lainformacinrelativaalapendientedelterreno
doubleslpMap
Lainformacindelaorientacindelterreno
doubleaspMap
Tambinnecesitamoslainformacindelavelocidadydireccindelviento
doublewspdMap
doublewdirMap

Pgina
42

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Aparte de toda la informacin de la celda central se necesita saber la informacin


relativaaltiempodeignicindelasceldasvecinas,estasdedejarnenlosparmetros
doubleignM0
doubleignM1
doubleignM2
doubleignM3
doubleignM4
doubleignM5
doubleignM6
doubleignM7
Ahoraprocederaexplicarcmofuncionaamsbajonivelelprocedimiento.
Lo primero que se hace es obtener la posicin de la celda actual y guardarla en una
variabletemporalllamadatmpCell,graciasalasfuncionesquenosaportaelSDKdel
SDLPS.

mncaGetCurrentCell(tmpCell);

Figura28:Obtencinceldaactual

A continuacin se obtiene toda la informacin de las capas (con funciones del SDK)
necesaria para la simulacin de esta celda actual y se guarda en sus respectivas
variables.

Pgina
43

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura29:Obtencininformacinceldaactual

Ahora nos falta obtener la informacin de las celdas vecinas, por lo que a partir de
ahoraloquesehacees,primerocalcularlaposicindeunaceldavecina,obtenerla
informacin(conlaayudadelasfuncionesdeSDK)yguardarlaensuvariable,ashasta
completarlasochoceldasvecinas.Comolaparrillaesunamatriz(bidimensional)yen
elSDLSsolosepuedenutilizararrays,paracalcularlasceldasvecinashayquesaberla
filaycolumnadelasceldas,estosehaceconlasfuncionesdegetPosicion,semodifica
la fila y columna de la celda hasta llevarla a una celda vecina (segn la vecindad de
Moore)ysecalculalaposicinfinaldelaceldavecina,deestamaneraseobtienela
posicindentrodelarrayyalfinalseobtieneelvalordentrodelacapa.

Figura30:Obtencininformacinceldavecina

Unejemplodeestoserapodraserelcasosiguiente.Estamosenunaceldaqueest
en la posicin 2575 de la parrilla de celdas (de 101 x 101 celdas), de este modo el
procedimientofuncionaraas:
Obtengo la posicin con la funcin mncaGetCurrentCell, por lo tanto en la variable
tmpCelltengolaposicin2575.
Comoyatengolaposicinahoraobtengolainformacindeestaceldaconlafuncin
queproporcionaelSDKmncaGetValueylaguardoensusrespectivasvariables

Pgina
44

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Ahoraobtengolaposicindelasochoceldasvecinasaladelaposicin2575,queson
estas2676,2677,2576,2475,2474,2473,2574,2675.Comoyatengosusposiciones
conlafuncinmncaGetValuepuedoobtenersutiempodeignicin,deestamaneraya
estamospreparadosparaejecutarlafuncindetransicindeesteautmata.
PorltimosepuedevercmoresultelprocedimientocompletoenLenguajeSDL.

procedure

Vecinity(int ignMap, double m1Map, double m10Map, double m100Map, double mherbMap, double mwoodMap, double slpMap,
double aspMap, double wspdMap, double wdirMap, double ignM0, double ignM1, double ignM2, double ignM3, double ignM4,
double ignM5, double ignM6, double ignM7);

Pgina-1 (1)

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;


mncaGetCurrentCell(tmpCell);

mncaGetCellValue(BlockCelda, tmpCell, ignM5);


mncaGetCellValue(BlockCelda, tmpCell, ignMap);
mncaGetCellValue(M1, tmpCell, m1Map);
mncaGetCellValue(M10, tmpCell, m10Map);
mncaGetCellValue(M100, tmpCell, m100Map);
mncaGetCellValue(MHerba, tmpCell, mherbMap);
mncaGetCellValue(MFusta, tmpCell, mwoodMap);
mncaGetCellValue(MPendent, tmpCell, slpMap);
mncaGetCellValue(MOrientacio, tmpCell, aspMap);
mncaGetCellValue(MVelVents, tmpCell, wspdMap);
mncaGetCellValue(MDirVents, tmpCell, wdirMap);

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;

mncaGetCellValue(BlockCelda, tmpCell, ignM6);


currCell=tmpCell;
nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;

mncaGetCellValue(BlockCelda, tmpCell, ignM0);

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;


mncaGetCellValue(BlockCelda, tmpCell, ignM7);

mncaGetCellValue(BlockCelda, tmpCell, ignM1);

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;

mncaGetCellValue(BlockCelda, tmpCell, ignM2);

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;

mncaGetCellValue(BlockCelda, tmpCell, ignM3);

nrow = getPosicion(currCell,0) + 1;ncol = getPosicion(currCell,1) + 0;tmpCell = ncol + nrow*Cols;

mncaGetCellValue(BlockCelda, tmpCell, ignM4);

Figura31:ProcedimientoVecinity

3.3.4 ElprocedimientoNucleus
En el procedimiento Nucleus lo que hacemos es bsicamente, salvar a las capas del
modelolosresultadosobtenidosporlafuncindetransicindelautmatacelular.

Pgina
45

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

ElprocedimientoNucleusysusparmetrossonlossiguientes:
Nucleus( int ignMap, double ignM0, double ignM1, double ignM2, double ignM3,
doubleignM4,doubleignM5,doubleignM6,doubleignM7);

Figura32:ProcedimientoNucleus

Lavariablequecontieneeltiempodeignicindelaceldaactuales:
IntignMap
Los siguientes ocho parmetros se corresponden con los tiempos de ignicin de las
celdasvecinas
doubleignM0
doubleignM1
doubleignM2
doubleignM3
doubleignM4
doubleignM5
doubleignM6
doubleignM7
Elfuncionamientodelprocedimientoamsbajonivelseraelsiguiente.
Igual que el procedimiento anterior lo que se hace es obtener en que celda nos
encontramosylaguardamosenlavariabletmpCell.

Pgina
46

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

mncaGetCurrentCell(tmpCell);

Figura33:Obtencininformacinceldaactual

A continuacin se guarda el valor del tiempo de ignicin de la celda en su


correspondientecapa,utilizandolafuncindelSDKdelSDLPSmncaSetCellValue.

Figura34:Salvarinformacinceldaactual

AhoracomoenelprocedimientoVecinitysepasaraacalcularlaposicindelasocho
celdasvecinasysalvarsuvalor

Figura35:Salvarinformacinceldavecina

A modo de ejemplo, siguiendo con el mismo ejemplo que el apartado anterior, nos
encontramos con la celda en la posicin 2575 y al entrar en este procedimiento
funcionariaas:
ObtengoelvalordelaposicindelaceldaactualconmncaGetCurrentCellyloguardo
entmpCellqueseriguala2575.
A continuacin guardo el tiempo de ignicin de esta celda con la funcin
mncaSetCellValue.
Despusdeestopasoacalcularlasposicionesvecinasala2575,queenestecasoson,
2676,2677,2576,2475,2474,2473,2574y2675.
Porltimoconguardosustiemposdeignicinquelostengoporlosparmetrosenlas
capascorrespondientes.

Pgina
47

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

EnSDLelprocedimientocompletoquedaracomoacontinuacin.

procedure

Nucleus(int ignMap, double ignM0, double ignM1, double ignM2, double ignM3, double ignM4, double ignM5, double ignM6, double ignM7);

Pgina-1 (1)

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;

mncaGetCurrentCell(tmpCell);

mncaSetCellValue(BlockCelda, tmpCell, ignM5);

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;


mncaSetCellValue(BlockCelda, tmpCell, ignMap);

mncaSetCellValue(BlockCelda, tmpCell, ignM6);


currCell = tmpCell;
nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;

mncaSetCellValue(BlockCelda, tmpCell, ignM0);

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;


mncaSetCellValue(BlockCelda, tmpCell, ignM7);

mncaSetCellValue(BlockCelda, tmpCell, ignM1);

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;

mncaSetCellValue(BlockCelda, tmpCell, ignM2);

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;

mncaSetCellValue(BlockCelda, tmpCell, ignM3);

nrow = getPosicion(currCell ,0) + 1;ncol = getPosicion(currCell ,1) + 0;tmpCell = ncol + nrow*Cols;

mncaSetCellValue(BlockCelda, tmpCell, ignM4);

Figura36:ProcedimientoNucleus

3.3.5 DiagramadeBloques
Seguimos bajando por el modelado y nos encontramos con el diagrama de bloques,
que nos representa en este punto un nico proceso, en la primera versin
representaba a toda el rea de terreno en cambio en la versin definitiva solo es
representativodeunanicacelda,parceladeterreno.

Pgina
48

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

En la versin inicial el bloque como representaba todo el terreno, posea toda la


informacindetodoelterrenoyrealizabatodaslasaccionesenbaseatodoelterreno
teniendoencuentaentodomomentotodaslasceldasdelazonaforestal.
Enlaversinfinalesdiferenteporqueenestemomentoelbloquenosrepresentauna
celdaenconcretoysoloconocelainformacinrelativaaellamisma,eslanicaquees
capaz de realizar sus modificaciones y sus clculos necesarios para avanzar en la
simulacin,poresononecesitaconocerydehechonoconoce,lainformacinrelativa
alrestodelasotrasceldas.
En nuestro caso, los bloques se ejecutan de manera paralela, ya que cada bloque
podraejecutarseenunacomputadoradiferente,esdecir,losbloquesseejecutarana
lavezenmaquinasdistintas.Paraelcasodelosprocesosquehaydentrodelbloquees
diferente porque estos se ejecutarn de manera concurrente, es decir, una misma
mquina alternar la ejecucin de varios procesos en posiciones fijas de tiempo,
aunqueennuestrocasosolohayunnicoproceso,enelcasodehabermsesloque
sucedera.

block

BlockCelda

ProcessCelda

Figura37:Diagramadebloques

3.3.6 DiagramadeEstados
LoprimeroquehayqueaclararqueestediagramanoesdellenguajeSDL,perocreo
queesmuyimportanteexplicarloparaquesecomprendaelmodelo.Eldiagramade
estados no vara del primer modelo al modelo final, lo nico que hay que tener en
cuenta que para el primer modelo el estado representaba a todo el terreno y en la

Pgina
49

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

versin final representa a cada celda de terreno, con lo que explicar este diagrama
paraversindefinitivayparaelprimermodeloesigual,solohayquecambiarloque
comentoaniveldeceldaporelniveldeterreno.
Cada celda contiene la informacin relativa a sus capas y puede modificar su
informacinalolargodelasimulacin.Elestadodeunaceldaeselquedeterminael
comportamientoqueestatendrdentrodelasimulacinyuncambioenesteestado
sepodrproducirsirecibeunasealproducidaporalgneventodealgunaotracelda
yestatambinpodrproducireventoshaciaotrasceldasloqueproducirncambios
deestadosenotrasceldas.
Losposiblesestadosdeunaceldason:

No Quemado, representa que la celda no est incendiada, es decir, en su


estadoforestalnatural.

Quemado,representaquelaceldayahasidodevastadaporelfuego.

Ardiendo,representaquelaceldaestardiendoyelfuegosepuedepropagar
haciaalgunadelasotrasceldas.

Acontinuacinseexplicarloseventos(marcadosencursiva)querecibencadaestado
(marcadosennegrita)ylosposiblescambiosdeestadosqueestospuedanproducir.
Primerodetodohayquedecirquetodaslasceldasempiezanconunestadoinicialde
No Quemado, como es natural todas las parcelas de terreno estn en su estado
originalycuandoestasrecibenuneventodePropagarescuandopasanamodificarsu
estado,aunestadodeArdiendo,exceptuandolaprimeraceldaqueseincendiarque
recibireleventodeArder,quesoloseproduciraliniciodelasimulacin.
CuandonosencontramosenelestadodeArdiendopuedehabervariossucesos,una
esquerecibauneventodeExtinguir,loqueharaquemodificaseelestadodelacelda
aunestadodeQuemado,acabandoaqulasimulacindeestacelda.Otraopcines
que la celda reciba el evento de Arder (significar que la celda est ardiendo),
ActualizarDatos (esto quiere decir que se ha modificado informacin de la celda en
tiemporealyporlotantoquevolverarealizarsusclculos)Propagar(significaque

Pgina
50

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

elfuegosepropagaaceldasvecinas)perocomosuestadoyaeradeArdiendo,nole
ocasionarningunamodificacinalestado.
EleventodePropagarproducirqueotrasceldasmodifiquensuestado,encambiolos
eventos Arder y ActualizarDatos son propios de la propia celda y como mucho
acabarnproduciendoquelamismaceldarecibaeleventodeExtinguir.
ElestadodeQuemadosellegarporquehanenviadouneventodeExtinguir,unavez
llegadoaesteestadodarigualloquereciba,porquelaceldayanopodrmodificarsu
estado en ningn otro momento de la simulacin, este estado es final porque la
parceladeterrenoyaestadevastada,porejemplosirecibeuneventodeArdercomo
yanohaymscombustibleporarder,noleafectar.
Eldiagramadeestadoscompletoeselquesemuestraacontinuacin.

Figura38:Diagramadeestados

3.3.7 DiagramadeProcesos
Esteeselnivelmsbajodelaespecificacin,elprocesoProcessCeldasecomponede
tresestados(marcadosennegrita)explicadosanteriormenteNoQuemado,Quemado
yArdiendo.Aligualquediagramaanteriorelmodeloinicialyfinalsonigualesconel

Pgina
51

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

cambio de tratar a nivel de celda o de terreno, por lo que solo explicar la versin
definitiva.
Loprimerodetodoenelprocesohaydeclaradosunosvaloresquesonnecesariospara
lasimulacinyrepresentanlosiguiente.
Elenteroquevieneacontinuacinnosmarcarsilaceldapropagaelfuegoaotraso
no,unvalordecerorepresentaquenosepropagayunvalordeunoquieredecirque
sepropagaaunaovariasceldasvecinas.
IntPROPAGA;
Hayotroenteroquenosdirentodomomentosielfuegosehaextinguidodelacelda
actual, un valor de cero representa que no est extinguido y un uno en el caso
contrario.
IntEXTINGUIDO;
Utilizaremosunavariableparamantenereltiempoactualdesimulacinyserelque
semuestraacontinuacin.
doubleProcessCelda_t;
Para guardar en todo momento la informacin relativa a la celda a simular,
utilizaremosestasvariables.
eltiempodeignicinenlasiguientevariable
intignMap.
Las tres variables siguientes hacen referencia a la humedad de combustible muerto
pasadas1,10y100horas
dobulem1Map
doublem10Map
doublem100Map,

Pgina
52

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Elcontenidodehumedaddelahierbaydemaderaestarenlasvariables
doublemherbMap
doublemwoodMap
Lainformacinrelativaalapendientedelterreno
doubleslpMap
Lainformacindelaorientacindelterreno
doubleaspMap
Tambinnecesitamoslainformacindelavelocidadydireccindelviento
doublewspdMap
doublewdirMap
Aparte de toda la informacin de la celda a simular se necesita saber la informacin
relativaaltiempodeignicindelasceldasvecinas,estasdedejarnenlasvariables.
doubleignM0
doubleignM1
doubleignM2
doubleignM3
doubleignM4
doubleignM5
doubleignM6
doubleignM7
Ahora se mostrarn los procesos de los tres estados por separado para una mayor
claridadyentendimiento.

Pgina
53

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Comenzaremoslasimulacinporelestadoinicialyloprimeroquehacemosesbuscar
cualeslaprimeraceldaquesehadeincendiar,inicializaremoslascaractersticasdel
fuegoyenviaremoseleventoArderparaempezarconlasimulacin.

Figura39:Enviandolasealarder.

Apartirdeaqu,todaceldaempiezaenunestadoinicialdeNoQuemado.Porserla
primeraceldaestahabrrecibidoeleventoArder,porloquecalcularlavecindadde
MooreconelprocedimientoVecinity.

NoQuemado

Arder

Vecinity(ignMap, m1Map, m10Map, m100Map,


mherbMap, mwoodMap, slpMap, aspMap, wspdMap,
wdirMap, ignM0, ignM1, ignM2, ignM3, ignM4, ignM5,
ignM6, ignM7);

Figura40:Recibiendolasealarder

A continuacin ejecutar una tarea que contiene la funcin de PropagarFuego que


calcular cuales son las celdas vecinas a las que se propaga el fuego, despus

Pgina
54

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

obtendremos el valor del tiempo de ignicin de estas celdas vecinas mediante la


funcin ObtenerCeldasIncendiadas (estas funciones se explicarn con detalle ms
adelante).

Figura41:Obteniendolapropagacin

El siguiente paso a realizar es guardar en las capas correspondientes los tiempos de


ignicindelasnuevasceldasenlasquesehadepropagarelfuego,estosehaceconel
procedimientoNucleus.

Figura42:Salvandolosresultados

YasolonosquedaenviareleventoPropagaralasnuevasceldasvecinasquehayque
simularyestolohacemosconlasextensionesextrasquehemoscreado,mnca_cell[]
dondeleindicaremoslasceldasquedeseamospropagarelfuegoyendelayelretraso
conelquequieresqueseejecuten.

Propagar

delay = {ProcessCelda_t};
mnca_cell[] = {propCell1,propCell2,propCell3,propCell4,propCell5,propCell6,propCell7,propCell8};

Ardiendo

Figura43:Enviandolasealpropagar

Estoeraparaelcasodelaceldainicial,peroparaelrestodeceldas,recibirnelevento
Propagar(enlugardeunodeArdercomoeraelotrocaso),loquequieredecirquese

Pgina
55

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

han de incendiar y por lo tanto han de cambiar de estado a un estado de Ardiendo


dondecontinuarnsusimulacin,enSDLestrepresentadodelasiguienteforma.

Figura44:Recibiendolasealpropagar

Eldiagramacompletoseraelquevieneacontinuacin:

Pgina
56

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura45:Diagramadeprocesos,parte1

Ahora detallar el segundo estado, el estado Ardiendo que puede recibir cuatro
eventos.
SirecibeeleventoArdersignificaquelaceldaseestquemandoporquetodavatiene
combustibleymientrastengacombustiblecontinuarenestemismoestado.

Pgina
57

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura46:Recibiendosealarder

SirecibeeleventodeExtinguirsignificaqueelfuegodeestaceldayasehaapagado
porqueelcombustiblesehaacabadoynosepuedeseguirardiendo,nipropagndose
a ninguna otra celda, por lo tanto la celda ha de cambiar de estado a uno de
Quemado.

Ardiendo

Extinguir

Quemado

Figura47:Recibiendolasealdeextinguir

TambinpuederecibireleventodePropagarestosignificaqueunaceldadelterreno
vecinalehapropagadoelfuegoyporesolehaenviadoesteevento,estoquieredecir
que la celda empieza a arder y podra propagarse a otra celda por lo que a
continuacinsecalculalavecindaddeMooreconelprocedimientoVecinity.

Pgina
58

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura48:Recibiendolasealdepropagar

Una vez conocemos toda la informacin relativa a la celda y a sus vecinas pasar a
ejecutarseunatareadondelaprimerafuncinPropagarFuegonoscalcularqueceldas
vecinas empiezan a incendiarse y en qu tiempo y despus con la funcin
ObtenerCeldasIncendiadas sabremos las celdas vecinas que se les ha propagado el
fuegoyporultimoconlasfuncionesgerPtopagarygetExtinguirpodremossabersila
celdapropagaelfuegoaotraceldaysiseextingueelfuegodeestacelda,guardando
en sus respectivas variables PROPAGA y EXTINGUIDO su valor para poder tomar las
decisionesconvenientesenlosprximospasos.

Figura49:Calculandolapropagacin

LosiguienteserguardarestainformacinenlascapasconelprocedimientoNucleus.

Pgina
59

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura50:Salvandolosresultadosobtenidos

Ahorallegamosaunpuntoenelquepuedenpasarvariascosas,silaceldasepropaga
hacia otras celdas, significar que esta celda sigue todava ardiendo y por lo tanto
enviaruneventodeArder,encasocontrarionoharnada.

Figura51:Tomandoladecisinsisepropagaelfuego

Despusllegamosaotropuntodecisional,dependiendosilaceldasehaextinguidoo
no,silaceldayahaagotadosucombustible,significarqueyanopuedearderyporlo
tantotenemosquecambiardeestadoaestaceldaenvindoleuneventodeExtinguiry
llevndolaaunestadodeQuemado.

Figura52:Enviandosealdeextinguir

Pgina
60

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Si por el contrario, no se ha extinguido, significa que el fuego podra propagarse a


alguna de sus celdas vecinas, por eso se le ha de enviar el evento Propagar, con la
ayuda de las nuevas extensiones mnca_cell[] y delay, hacia las nuevas celdas
propagadas.

EXTINGUIDO==1
false

delay = {ProcessCelda_t};
mnca_cell[] = {propCell1,propCell2,propCell3,propCell4,propCell5,propCell6,propCell7,propCell8};

Propagar

Ardiendo

Figura53:Enviandolasealdepropagar

Porltimo,tambinpuederecibireleventodeActualizarDatos,esteeventoseenviar
cuandosemodifiquenlosdatosdelasceldasentiemporeal,porejemplocuandose
realiceunasimulacinconlaayudadeGPSquepermitanenviarymodificardatosal
sistemaentiemporeal.Enestecasoloprimeroquetenemosquehaceresobtenerla
informacinmodificadaconelprocedimientoVecinity.

Figura54:Recibiendolasealdeactualizardatos

Despusprocederemosaejecutarlatareaquecalculesiconlosnuevosdatoselfuego
delaceldaactualhacequeelfuegosepropagueaotrasceldasvecinasysabercules
son,

esto

lo

obtendremos

con

las

funciones

ObtenerCeldasIncendiadas.

Pgina
61

PropagarFuego

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura55:Calculandolapropagacin

Guardaremos los resultados obtenidos en las capas de informacin con el


procedimiento Nucleus y enviaremos el evento Propagar a las nuevas celdas
incendiadasconlaayudadelasextensionesextra.

Figura56:Enviandolasealdepropagar

Eldiagramacompletoquedaracomoseveacontinuacin.

Pgina
62

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

process

Pgina-1 (3)

ProcessCelda

Ardiendo

Arder

Extinguir

Ardiendo

Quemado

Propagar

ActualizarDatos

Vecinity(ignMap, m1Map, m10Map, m100Map,


mherbMap, mwoodMap, slpMap, aspMap, wspdMap,
wdirMap, ignM0, ignM1, ignM2, ignM3, ignM4, ignM5,
ignM6, ignM7);

Vecinity(ignMap, m1Map, m10Map, m100Map,


mherbMap, mwoodMap, slpMap, aspMap, wspdMap,
wdirMap, ignM0, ignM1, ignM2, ignM3, ignM4, ignM5,
ignM6, ignM7);

PropagarFuego(ProcessCelda_t,Rows,Cols,fuelMap,m1Map,m10Map,
m100Map,mherbMap,mwoodMap,slpMap,aspMap,wspdMap,wdirMap,
ignMap,flMap,currCell,
ignM0,ignM1,ignM2,ignM3,ignM4,ignM5,ignM6,ignM7);
propCell1=ObtenerCeldasIncendiadas(0);
propCell2=ObtenerCeldasIncendiadas(1);
propCell3=ObtenerCeldasIncendiadas(2);
propCell4=ObtenerCeldasIncendiadas(3);
propCell5=ObtenerCeldasIncendiadas(4);
propCell6=ObtenerCeldasIncendiadas(5);
propCell7=ObtenerCeldasIncendiadas(6);
propCell8=ObtenerCeldasIncendiadas(7);

PropagarFuego(ProcessCelda_t,Rows,Cols,fuelMap,m1Map,m10Map,
m100Map,mherbMap,mwoodMap,slpMap,aspMap,wspdMap,wdirMap,
ignMap,flMap,currCell,
ignM0,ignM1,ignM2,ignM3,ignM4,ignM5,ignM6,ignM7);
propCell1=ObtenerCeldasIncendiadas(0);
propCell2=ObtenerCeldasIncendiadas(1);
propCell3=ObtenerCeldasIncendiadas(2);
propCell4=ObtenerCeldasIncendiadas(3);
propCell5=ObtenerCeldasIncendiadas(4);
propCell6=ObtenerCeldasIncendiadas(5);
propCell7=ObtenerCeldasIncendiadas(6);
propCell8=ObtenerCeldasIncendiadas(7);

Nucleus(ignMap, ignM0, ignM1, ignM2,


ignM3, ignM4, ignM5, ignM6, ignM7);

Nucleus(ignMap, ignM0, ignM1, ignM2,


ignM3, ignM4, ignM5, ignM6, ignM7);

true

PROPAGA==1

false
delay = {ProcessCelda_t};
mnca_cell[] = {propCell1,propCell2,propCell3,propCell4,propCell5,propCell6,propCell7,propCell8};

Propagar

Arder TO SELF

Ardiendo

EXTINGUIDO==1
true

false

Extinguir TO SELF

Propagar

Quemado

Ardiendo

delay = {ProcessCelda_t};
mnca_cell[] = {propCell1,propCell2,propCell3,propCell4,propCell5,propCell6,propCell7,propCell8};

Figura57:Diagramadeprocesos,parte2

Parafinalizarelltimoestado,eseldeQuemado,sisellegaaesteestadoesporquese
harecibidouneventodeExtinguir,loquesignificaqueyanohaycombustibleenesta
celdayporlotantoacabarlasimulacinparaestacelda.

Pgina
63

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Quemado

Arder

Quemado

Figura58:Diagramadeprocesos,parte3

Alolargodelasimulacinhayvariasfuncionesquesedetallarnmsadelanteyaqu
soloexplicarunpocoporencima.UnadeellasesladePropagarFuegoquecalculasi
se propaga a las celdas vecinas o no y el tiempo que empieza la ignicin de estas.
Bsicamentelosparmetrosqueposeesonrelativosalainformacindelaceldaactual
ylostiemposdeignicindesusceldasvecinas.
voidPropagarFuego(doubletimeNext,intRows,intCols,intfuelMap,doublem1Map,
double m10Map, double m100Map, double mherbMap, double mwoodMap, double
slpMap, double aspMap, double wspdMap, double wdirMap, double ignMap, double
flMap, int cell, double i0,double i1,double i2,double i3,double i4,double i5,double
i6,doublei7);
OtrafuncinesladeObtenerCeldasIncendiadas,quenosdicelaposicindeunade
lasochoceldasvecinasquesehadepropagarelfuego.
intObtenerCeldasIncendiadas(inti);
ConlafuncingetPropagarpodemossabersilaceldapropagaelfuegoaalgunadesus
ochoceldasvecinasono.
intgetPropagar();
YlafuncingetExtinguirnopermitirsabersielcombustibledelaceldasehaagotado
yporlotantonopuedeseguirardiendolacelda.

Pgina
64

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

intgetExtinguir();
Todas estas funciones estn explicadas en su totalidad y en detalle, junto con el
diagramadeclasesensuapartadocorrespondiente.

3.4 GeneracinXML
Una vez realizada la especificacin, se procedi a traducir el modelo obtenido para
pasarlo a un formato xml que el software SDLPS pudiese entender para probar la
simulacin.Larelacinentrelosdiagramasdelmodeloyelxmlesdirectaporloqueno
entrar en mucho detalle sobre el formato de este documento, si se desea se
completosepuedeverenelanexo.
Comotodoarchivoxml,funcionamedianteetiquetas:
Hayunaetiquetaprincipalllamadasystemquerepresentatodonuestrosistema,y
aquesdondeseespecificaloexplicadoeneldiagramadelSistema.
Dentrodeestaetiquetanosencontramosconunaetiquetaquesellamamncaynos
representaloexpresadoeneldiagramadeMNA_Fuego,contodaslasdeclaracionesy
procesosexplicadosanteriormenteensucorrespondientediagrama.
Noseguimosadentrandoporelxmlydentrodelaetiquetaanteriornosencontramos
laetiquetadeblockquerepresentaeldiagramadeBloques.
Inmediatamente despus se encuentra la etiqueta process que nos permite
especificareldiagramadeProcesosdenuestromodelo,detallandoentodomomento
al igual que los diagramas, las declaraciones, las funciones, los estados y las
extensionesquehemosaadidoallenguajeSDL.
Comoseveaenlosdiagramas,desdeelnivelmsaltovasentrandoalsiguientenivel
inferior,ycadanivelasuinferiorrespectivamente,hastallegaralnivelmsbajoque
seraennuestrocasoelniveldeprocesosyenelxmlsehaceigual,cadaetiquetava
encerrandoasunivelinferiordeestamanerasesiguelaestructuradeunxmlcorrecto
ydelosdiagramasespecificadosanteriormente.

Pgina
65

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

4 IMPLEMENTACION
4.1 Eleccinlenguajeprogramacin
Uno de lo que haba que decidir era que lenguaje de programacin elegir para
implementar el modelo, haba varios lenguajes, C, C++, .NET, Java llegando a la
conclusin que el lenguaje ms adecuado era el lenguaje C, por la razones que
explicaracontinuacin.
UnadelasgrandesventajasquetieneestelenguajeCrespectoaotrocomoJavapor
ejemplo es la gran eficiencia que tiene a la hora de tratar mucha informacin y a la
horarealizarlosclculosdeestainformacin.
Setenaqueutilizarpartedecdigodelalibreraexternafirelib,lacualestrealizada
en C, cosa que nos facilitara el trabajo, aunque pasarla a C++ tambin hubiera sido
posible.
Tambinsehantenidoquedejardeladootrosaspectoscomolaportabilidad,puede
que en este aspecto Java sea mucho ms portable que cualquiera de los otros
lenguajes, pero en el caso de este proyecto mi proyecto viene condicionado con la
utilizacin del programa SDLPS, que est desarrollado en C++, por lo que quedaba
descartadoellenguajeJava.FinalmentenosquedabandoslenguajesC++yC,lolgico
hubiera sido elegir C++, pero por cuestiones del programa SDLPS era ms fcil de
mantenerrealizarloenCqueenC++.
Deestamaneraquedabaclaroquelosobjetosimportantesdelmodelosecompilara
enC++(nopermitiendocambiodelmodeloalguno)medianteelprogramaSDLPSylos
procesosexternos,menosimportantescomoporejemploelclculodelapropagacin
de Richard Rothermel (puede que alguien le interese utilizar otro clculo de la
propagacin),permitiralamodificacinporusuariosexternos,serealizaraenC.

4.2 SDKSDLPS
El SDLPS nos proporciona un Kit de desarrollo de software, es decir, un conjunto de
herramientasdedesarrolloquenospermitequeseamsfcilalahoradeprogramar.
Msconcretamentenosproporcionalassiguientesfunciones:

Pgina
66

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

mncaGetCurrCell

mncaGetCellValue

mncaSetCellValue

LaprimerafuncinmncaGetCurrCellnospermitesaberenquceldaestlasimulacin
ytienecomoparmetrounenteroqueserdondenosguardaelvalordelaposicin
delaceldaactual.

mncaGetCurrentCell(tmpCell);

Figura59:FuncinmncaGetCurrCell

LafuncinmncaGetGetValuenospermitesaberlainformacinquecontieneunacapa
denuestromodelo,indiferentementedelacapaquesepreciseconsultar,porejemplo
puede contener el tiempo de ignicin de las celdas, la direccin del viento la
pendiente del terreno, entre muchas otras capas. Recibe como parmetros un string
conelnombredelacapa,unenteroconlaposicindelaceldaquesequiereconsultar
yuntercerparmetrodondeguardarelresultado.

Figura60:FuncinmncaGetGetValue

La tercera funcin mncaSetValue nos permite guardar la informacin, que hemos


podidomanipularvolvercalcular,ysalvarladenuevoalacapaquelecorresponda.
Recibecomoparmetrosunstringconelnombredelacapa,unenteroconlaposicin
delaceldaqueseesttratandoyunltimoparmetroqueserelquedejarenla
capa.

Figura61:FuncinmncaSetCellValue

Pgina
67

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Conestastresfuncionestenemosmsquesuficienteparapoderllevaracabola
simulacin.

4.3 Diagramadeclases
El diagrama de clases que se expone a continuacin solo es de referente al cdigo
externoqueutilizaelsimulador,yaqueelsimuladorSDLPScreaautomticamenteel
cdigodelmodeloyposteriormenteunalibreraquenopodemosmodificar.

Figura62:Diagramadeclases

EnestediagramanosencontramosconlaclaseFireModelquerepresentaelmodelo
delfuego,ennuestrocasoextradodirectamentedelalibrerafirelibyquesedefine
todalaclaseenelanexo.
LaclaseFireSimulationeslaquenosdefinelasfuncionesrelativasalapropagacindel
fuego y las nicas que el usuario podra modificar si fuera el caso que lo necesitase,
porqueprefiereusarotrasfuncionesdepropagacin.
LosmtodosdelaclaseFireSimulationsonlossiguientes:

Figura63:ClaseFireSimulation

PropagarFuego:

Tipoderetorno:void

Pgina
68

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Descripcin: Ejecuta todos los calculos necesarios para saber si una celda
incendiadapropagaelfuegoaunadesusochoceldasvecinas.
Parmetros:
timeNext

Expresindeltipo:double

Tipo:entrada
Descripcin:Valorconeltiempoactualdelasimulacin.

Rows
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodefilasdelaparrilladeceldas

Cols
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodecolumnasdelaparrilladeceldas

fuelMap
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconeltipodecombustibledelacelda

m1Map

Pgina
69

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Expresindeltipo:double

Tipo:entrada
Descripcin: Contenido de humedad del combustible muerto pasada 1

hora
m10Map
Expresindeltipo:double

Tipo:entrada
Descripcin:Contenidodehumedaddelcombustiblemuertopasada10

horas
m100Map
Expresindeltipo:double

Tipo:entrada
Descripcin: Contenido de humedad del combustible muerto pasada

100horas
mherbMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Contenidodehumedaddelahierba

mwoodMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Contenidodehumedaddelamadera

Pgina
70

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

slpMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Contienelapendientedelterreno

aspMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Valordeconlaorientacindelterreno

wspdMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Valorconlavelocidaddelviento

wdirMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Valorconladireccindelviento

ignMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Eltiempodeigniciondellacelda

flMap

Pgina
71

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Expresindeltipo:double

Tipo:entrada
Descripcin:Valorconlalongituddelallama

cell
Expresindeltipo:int

Tipo:entrada
Descripcin:Valordelaposicindelaceldaatratar

i0
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelaprimeraceldavecina

i1
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelasegundaceldavecina

i2
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelaterceraceldavecina

i3
Expresindeltipo:double

Pgina
72

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Tipo:entrada
Descripcin:Tiempodeignicindelacuartaceldavecina

i4
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelaquintaceldavecina

i5
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelasextaceldavecina

i6
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelaseptimaceldavecina

i7
Expresindeltipo:double

Tipo:entrada
Descripcin:Tiempodeignicindelaoctavaceldavecina

InicializarFuego:
Tipoderetorno:void
Descripcin:Ejecutatodosloscalculosnecesariosparainiciarlasimulacin.

Pgina
73

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Parmetros:
Rows
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodefilasdelaparrilladeceldas

Cols
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodecolumnasdelaparrilladeceldas

IgnMap
Expresindeltipo:double

Tipo:entrada
Descripcin:Eltiempodeignicindelacelda

ObtenerCeldasIncendiadas:
Tipoderetorno:int
Descripcin:Obtieneslaposicindeunaceldavecina.

Parmetros:
i
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodelaceldavecinaquequieresobtener

Pgina
74

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

ObtenerDelayCeldasIncendiadas
Tipoderetorno:int
Descripcin:Obtieneselretardodeunaceldavecina.

Parmetros:
i
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodelaceldavecinaquequieresobtener

getPropagar:
Tipoderetorno:int
Descripcin:Obtienessilaceldapropagaelfuegoono.
getExtinguir:
Tipoderetorno:int
Descripcin:Obtienessielfuegodelaceldasehaextinguido.
getCeldaInicio:
Tipoderetorno:int
Descripcin:Obtieneslaposicindelaceldadeinicio.

Parmetros:
Rows

Pgina
75

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodefilasdelaparrilladeceldas

Cols
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodecolumnasdelaparrilladeceldas

getCeldaActual:
Tipoderetorno:int
Descripcin:Obtieneslaposicindelaceldaencurso.
ObtenerCeldasTemp:
Tipoderetorno:int
Descripcin: Obtienes el tiempo de ignicin de la celda pedida (mtodo de
debug)

Parmetros:
i
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodelaceldaquequieresobtener

getPosicion:
Tipoderetorno:int

Pgina
76

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Descripcin: Permite obtener la posicin exacta en fila columna de una


determinadacelda

Parmetros:
tmpCell
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorconelnmerodelaceldaquequieresobtener

i
Expresindeltipo:int

Tipo:entrada
Descripcin:Valorquepermitedevolverlafila(0)lacolumna(1)

WriteMap:
Tipoderetorno:int
Descripcin:Permiteescribirenunficheroelresultadodeunmapadeterreno
(mtododedebug)

Parmetros:
map
Expresindeltipo:double

Tipo:entrada
Descripcin:Elmapaquequiereobservar

fileName

Pgina
77

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Expresindeltipo:char*

Tipo:entrada
Descripcin:Elpathcompletodelficheroacrear

debug:
Tipoderetorno:int
Descripcin:Escribeenunficherolavariabledada(mtododedebug)

Parmetros:
i
Expresindeltipo:int

Tipo:entrada
Descripcin:Lavariableinteresada

fileName
Expresindeltipo:char*

Tipo:entrada
Descripcin:Elpathcompletoacrear

intdebug2:
Tipoderetorno:int
Descripcin:Escribeenunficherolavariableinteresada(mtododedebug)

Parmetros:

Pgina
78

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

i
Expresindeltipo:double

Tipo:entrada
Descripcin:Lavariableinteresada

fileName
Expresindeltipo:char*

Tipo:entrada
Descripcin:Elpathcompletodelficheroacrear

debugTXT:
Tipoderetorno:int
Descripcin:Escribeenunficheroeltextopasadoporparmetro(mtodode
debug)

Parmetros:
i
Expresindeltipo:char*

Tipo:entrada
Descripcin:Lacadenadecaracteresinteresada

fileName
Expresindeltipo:char*

Tipo:entrada
Descripcin:Elpathcompletodelficheroacrear

Pgina
79

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

4.4 Simulacindistribuida
Lossistemasdeeventosdiscretossondegranutilidadparahacersimulacionesdetodo
tipo, pero en muchos casos la ejecucin de estas simulaciones es poco eficiente. El
principal problema de es la velocidad, ya que tiene que manejar gran cantidad de
informacin, adems de la complejidad de los modelos y clculos. Para que sea
significativaunasimulacindebedegenerarunnmerosuficientedeevolucionesdel
sistema.
Por eso tenemos que obtener una simulacin ms rpida y a primera vista eso lo
podemoshacerdedicandomsrecursos,sepuedeverclaroquepodemosacelerarla
simulacinutilizandounsistemademultiprocesadorenlugardeunsoloprocesador,
pero claro para una simulacin, en la que son sistemas que tienen muchos
componentesoperandoenparalelo,lomsrazonableseraexplotarestoydarungran
salto de calidad para solventar este problema, lo mejor sera hacer el modelo
distribuido,esdecirunasimulacindistribuida.
Lasimulacindistribuidaseralaejecucindelasimulacinendiversascomputadoras,
yestolopodemoshacerporquehaymuchoscomponentesoperandoenparalelo,de
maneraquemejoraramoslavelocidaddelasimulacin.
Adems de la velocidad, a veces el sistema puede que no tenga suficiente memoria
paramanejartodalasimulacin,deestamaneradistribuida,haciendoquelamemoria
noseacompartida,tambinarreglamosesteproblema.
Llegados a este punto, hace falta hacerse una pregunta Cmo hacer la simulacin
distribuida?Pararealizaestoyhayvariasformas:
Hacerreplicacionesindependientesdeunasimulacinexistenteencomputadoraspor
separado y luego recoger los resultados. Aunque parezca que sea muy eficiente
porque cada computadora ejecuta una simulacin diferente requiere que cada una
tenga memoria suficiente para contener toda la simulacin, cosa que no siempre es
posible.

Pgina
80

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Hacerlasfuncionesdistribuidas,asignandotareasdiferentesacadacomputadora.Lo
maloesquenoexplotaelparalelismoyaquecadatareasetienequehacerunadetrs
deotra.
Utilizar eventos distribuidos aprovechando que solo se cambia de estado en puntos
discretosdetiempo,esdecircuandoseproduceunevento.
Descomponer el modelo en varias partes, cada parte requerir menos informacin y
en consecuencia menos memoria,uno de los problemas comentados anteriormente.
Elnicoproblemaesquehayquetenercuidadoconlasincronizacin.
La ltima forma es la que ms beneficios nos aportar, por eso se decidi
descomponerelmodelo,ademsqueelsoftwareutilizado,elSDLPS,nospermiteeste
tipodesimulacin,lomslgicoseraqueenestetipodesimulacionesseutilizasen
supercomputadorasporqueestasposeencapacidadesdeclculomuysuperioresalas
comunes, permitiendo incluso lanzar muchas simulaciones a la vez con los datos
diferentes para estudiar y comparar sus resultados, cosa que con una computadora
comnsehaceinviable.
Gracias la simulacin distribuida podemos organizar los diferentes componentes de
una simulacin en diferentes mquinas, por ejemplo, en una maquina el mapa de
vientos,enotraelmapadelalluvia,etc.Deestamaneranosolosirvecadamquina
para una nica simulacin, sino una maquina que contiene un componente como
puede ser el mapa de lluvias, puede ser aprovechada por otras simulaciones que
tambinnecesitendatosdeestemapa.

4.4.1 LeydeAmdahl
Con la ley de Amdahl (J.M. Llavera s.f.) podemos medir el rendimiento de un
computador,yaquepodemosconocerlagananciaquenosaportacuandoejecutamos
lasimulacindemaneradistribuidarespectodelaoriginal.
La Ley deAmdalh establece que la ganancia por aadir la una mejora en un diseo
estlimitadaporlafraccindeltiempooriginalenqueseutilizalamejora.
LafrmulaoriginaldelaleydeAmdahleslasiguiente:

Pgina
81

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura64:LeydeAmdahl

Aeslagananciaconseguidadebidoalamejora
Fmeslafraccindetiempoqueseutilizalamejora
Ameslagananciacuandoseutilizalamejora
Si aplicamos la ley de Amdahl a nuestro caso concreto para ver la ganancia que se
tienealhacerlasimulacindistribuidaobtenemoslosresultadossiguientes:
Fm(%deltiempo)

Gm

Ganancia(%)

25

14

50

33

75

59

100

100

25

20

50

49

75

100

100

203

Fm representa el % del tiempo que se ha utilizado la mejora, en nuestro caso es el


tiempoquehaestadolasimulacindistribuidaentrevariascomputadoras.
Gmrepresentalagananciacuandoseutilizadichamejora,ennuestrocasolaganancia
esigualalnmerodecomputadorasutilizadas(suponiendoquetienenunprocesador
cadauna).
Segn los resultados obtenidos se puede ver que cuantos ms computadoras
tengamosdisponiblesparalasimulacindistribuida,mejorsereltiempodeejecucin
delasimulacin(msganancia),peronosoloeso,sinoque,elaspectomsrelevante
es que cuanto ms distribuido tengamos el modelo, mayor fraccin de tiempo
podremosutilizarestamejoraycomoconsecuenciadirecta,sepuedeverenlatabla,
quelagananciaaumentabastantemsconlavariacindeestafraccindetiempo,por

Pgina
82

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

lotantosepuedeconcluirquelarealizarunadistribucindelmodelo,tienemspesoy
obtienemsgananciaqueelevarelnmerodecomputadoras.

Pgina
83

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

5 EXPERIMENTACION
5.1 Estructuradelsimulador
La estructura del simulador est compuesta por la carpeta raz y unas subcarpetas y
ficheroscondiferenteinformacin,suestructuraeslasiguiente:
El archivo principal del simulador es el modelo en SDL, que est especificado en la
carpetarazdelproyectoysellamaSystemCelda.xml
Enlacarpetaraztambinnosaparecenlosarchivosquegeneraautomticamenteel
SDLPS, SDLCode.c, SDLCOde.o y SDLCode.dll, que contienen el cdigo fuente, cdigo
objetoylalibreradelsimulador.Tambinnospodremosencontrardependiendodela
simulacin un fichero llamado trace.csv que contiene todos los pasos que se han
realizadoenlasimulacinyquesirveparadebugar.
Dentrodelacapetaraztenemoscuatrosubcarpetas:
Lacarpetadatacontienelainformacindelascapasrelativasalascaractersticasdel
terrenoasimular,haydostiposdearchivos,unossonlos.docquedescribencomo
estncompuestoslosdatosyotrosarchivos.imgquecontienenlosdatosraster.
Otracarpetadoc,contienelosdiagramasdelmodelorealizadosconelMicrosoftVisio
ySandrila,exactamentetalycomoestndescritosenelarchivoxmlprincipal.
EnlacarpetaMemoriaestladocumentacinrealizadaparaesteproyecto.
YporultimounaltimacarpetaSDLCodeExternalquecontienelascabeceras,archivos
.h y el cdigo fuente, archivos .c de los mtodos externos que necesitamos para
llevaracabolasimulacin.

5.2 Verificacin,validacinyexperimentacindelmodelo
En las simulaciones hay unas fases que tienen gran importancia, una de ellas es la
verificacin, debemos de saber si hemos construido correctamente el modelo, es un
pasoimportanteparaprobarelmodelo,peroaunqueresultepositiva,nonosasegura
queelmodeloseacorrecto.

Pgina
84

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Otrafaseeslavalidacin,queconsisteensabersielmodeloquehemosconseguidoa
lolargodeesteproyecto,eselcorrectoparaelsistemarealdelcomportamientodel
fuegoenlosincendiosforestalesono.
Nuestromodeloobtendrcomoresultadosunassalidasquenosservirnparaobtener
conclusionessobrenuestrosistemaylocomparemosconelsistemareal,porlotanto
conestacomparativanosaseguraremosquenuestromodeloseavlido.
EnnuestrocasosehautilizadoelmodelodeBehave,enparticularparalapropagacin
delfuegosehautilizadolalibrerafirelib,lacualyaestvalidadayporesemotivono
seentrarenmuchosdetalles.
Partiendodeestemodeloyavalidadoloqueharemossercompararlosresultadosdel
modelodeBehavequeyaescorrectoycompararloconlosresultadosobtenidospor
nuestromodelo,deestamanerasabremossilosresultadosqueestamoslograndocon
nuestrasimulacinsoncorrectosono.
Empezaremos comprobando que las todos los datos relevantes que tiene el sistema
realtambinestnennuestrosistema.
Paraempezarlosdatosdeentradatantodelsistemarealcomodenuestrosistemason
idnticos,yaquecogeremoslainformacinsobrecombustible,viento,pendientede
unejemplodelaslibrerasfirelib.
Enunaprimerafasedelproyectosehaejecutadolasimulacinennuestromodelono
distribuidoyelresultadohansidosalidasexactasparanuestromodeloyelmodelode
Behave, por lo tanto se puede decir que nuestro modelo es fiable, que ha pasado la
verificacinylavalidacin.
El resultado grfico de la simulacin del modelo Behave y nuestro modelo es el
siguiente:

Pgina
85

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura65:ResultadoBehave

Figura66:Resultadosimuladornodistribuido

Lazonaazulmarcalasceldasparceladeterrenoforestalquenohasidoincendiado,
porlotantonohasidoafectadaporelfuegoylazonablancamarcalazonadeterreno
donde se ha propagado el fuego. El resultado que hemos obtenido por ambas
simulaciones es una matriz con los tiempos en que se inicia el fuego en la celda (se
puede encontrar en los anexos) aunque para un entendimiento ms claro, como el
SDLPStambinmuestraelresultadogrfico,sedecidipasarelresultadoobtenidopor
elmodelodeBehaveagrficotambin.
En la segunda fase, la ejecucin de la simulacin en un simulador distribuido, por
razonesdetiempoyporqueelSDLPSanestenplenodesarrollo,nohemospodido
obtenerlosresultadosparacompararlosconelmodelodeBehave.Aunquenodebera
haber problemas para obtener unos resultados satisfactorios, ya que el modelo y el

Pgina
86

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

cdigo externo es prcticamente el mismo, aadiendo las extensiones al SDL ya


explicadasanteriormente.
Estesimuladortepermitiracrearvariosiniciosdefuegosenelmismoterreno,lonico
que no podemos validar los resultados ya que no disponemos de otros resultados
vlidosparapodercompararlos.

Pgina
87

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

6 PLANIFICACINYCOSTES
6.1 Fasedocumentacin
La primera fase, que va desde el da 1 de Septiembre de 2009 hasta el da 15 de
Octubrede2009,secentrendocumentaryrecopilarinformacinsobrelossiguientes
temas:

Estudiodelossimuladores.

Estudiodelascaractersticasdelfuegoydelosincendiosforestales

EstudiodelmodelodeBehaveylibrerafirelib

EstudiodelaherramientaSDLPS

Estudiodelossistemasdeinformacingeogrfica

Estudiodelosautmatascelularesdistribuidos

Estafaseserealizconxito,segnlaplanificacinysedispusodelosconocimientos
necesariospararealizarelproyectocongarantasyparaquesearepresentativodeun
comportamientodeunincendioforestalreal.
Elrepartodeltiempoenestafasequeddelamanerasiguiente:

Tema

Tiempo(das)

Simuladores

Caractersticasdelfuegoeincendios

forestales
Simulacindelcomportamientodelfuego

10

LenguajeSDL

Sistemasdeinformacingeogrfica

Idrisi32

SDLPS

Firelib

10

MNCA

Despusderealizarestfasehadadocomoresultadountotalde33dasdetrabajo,si
sesumalacolumnadedaselresultadonodar33estoesporquehabatareasquese
podanrealizarsimultneamente,estosepuedevereneldiagramadeGantt.

Pgina
88

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

6.2 FaseModeladoyDiseo
La fase de modelado y diseo, comprende entre los meses Noviembre y Diciembre,
estaesunadelasfasesmsimportantesyenlacualhabaquetratarlosiguiente:

La especificacin del Modelo, donde haba que disear el modelo en


lenguaje SDL, especificando claramente los diagramas de sistema, mnca,
bloque,estadoydeprocesos.

GeneracindelXMLdelmodelocreado

Lafasedediseosecompletconxitoenelperiodoplanificado,aunquecomoerade
esperar, durante la implementacin ha habido puntos conflictivos que no se haban
tenido en cuenta, producidos por la inexperiencia en este terreno, y eso ha hecho
modificar el diseo durante la fase de implementacin, aunque han sido pequeos
cambiosquenohantenidogranrepercusinenlosdiagramas.
Eltiempodestinadoaestafasequedadelasiguientemanera:
Tema

Tiempo(das)

Diagramadesistema

DiagramadeMNCA

13

DiagramaprocesoVecinity

DiagramaprocesoNucleus

Diagramadebloque

Diagramadeestados

Diagramadeprocesos

16

GeneracinXML

19

Eltotaldedasdestinadosparaestafaseesde58das,estaeralafasemsimportante
del proyecto y por eso ninguna tarea se hace simultneamente, hasta no tener una
claranosepasalasiguiente.

6.3 FaseImplementacin
La fase de implementacin comprende entre los meses de enero, febrero, marzo y
abril,lostemasatratarsonlossiguientes:

Pgina
89

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Eleccindellenguajedeprogramacin

Diagramadeclases

Adaptacinfirelib

Paralelizacin

Elrepartodetiempoparaestastareasquedodelasiguientemanera:
Tema

Tiempo(das)

Eleccindelenguaje

Diagramadeclases

Adaptacinfirelib

45

Paralelizacin

17

Eltotaldedasesde70dasdetrabajo

6.4 FaseExperimentacin
Lafasedeexperimentacincomprendelosmesesdemarzo,abril,mayoysetrataban
lostemasquenombroacontinuacin:
Tema

Tiempo(das)

Experimentacin

16

Eltotaldedasesde16

6.5 Fasedelamemoria
Lafasedememoriacomprendelosmesesquevandesdeenerohastalafinalizacindel
proyectoenmayo.
Tema

Tiempo(das)

Creacinmemoria

99

LasfechasexactasydiagramadeGanttsemuestranacontinuacin:

Pgina
90

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura67:Fechasplanificacin

Pgina
91

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura68:DiagramadeGantt

Pgina
92

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Los costes de este proyecto estn divididos en dos partes, por un lado los costes
referentes a materiales, bsicamente software y por otro lado el coste por das de
trabajo.
Loscostesimputadosalmaterialsonlossiguientes:
Software

Coste()

WindowsVista

210

MicrosoftOffice

208

SDLPS

Sandrila

23

TOTAL

441

Eltotaldeestecosteesde441.
Loscostesdepersonalsonlossiguientes:
Fase

Das

Costeporda()

Costefase()

Documentacin

33

480

15840

Diseo

58

480

27840

Implementacin

70

320

22400

Experimentacin

16

320

5120

71200

TOTAL

Eltotaldelcostedepersonalserade71200.
Elcostetotaldelproyectoseralasumadelcosteimputadosalmaterialmselcoste
imputadoalpersonal,endefinitivadeunos71641.

Pgina
93

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

7 CONCLUSIONES
Hayquetenerencuentaqueconesteproyectonosehatratadotodalaproblemtica
delfuego,msconcretamentesolosetratlapartedelapropagacindelfuegoenun
incendio forestal, en futuros proyectos se podr ampliar este mismo proyecto para
quesigatratandootrosproblemasdeintersqueaparecenenlosincendiosforestales
comoseralaextincindelfuego,porponerunejemploclaro.
Conesteproyectotambinsehapodidoverlasposibilidadesqueofrecenlasnuevas
tecnologas y las diferentes herramientas como el SDLPS, que permiten crear
simuladores complejos a partir de diagramas especificados en lenguaje SDL
desvinculando a la persona de sus conocimientos o no de los lenguajes de
programacinexistentes,simplementeconociendoellenguajeSDLqueesmuchoms
visualyfcildeaprenderquecualquierlenguajedeprogramacin,cadaunosepodr
crearsumodeloyejecutarunasimulacinsintenerquetocarcdigo.
Atodoestohayquedecirquecomosepuedenejecutarsimulacionesdistribuidashace
que se puedan ejecutar ms simulaciones a la vez y poder recoger ms resultados
diferentesparapodertomarlasdecisionesadecuadas.
Las simulaciones son bastante prximas a la realidad ya que permiten recoger los
datosdeentradadesistemasGIS,informacindelterrenoreal,queestnenconstante
actualizacinymientrasmsprecisindelosdatosdeentradamscercaestaremosde
unincendioreal.
Tambin hay que destacar que hasta ahora las herramientas que haba para realizar
simulaciones de incendios forestales, los resultados se mostraban mediante tablas
grficossimplesalfinaldelasimulacin,encambio,ahoranospermitirmostrarlos
resultadosentiemporealalavezqueseejecutalasimulacinymostrarlosresultados
entresdimensiones,deunamaneramsamigableyentendible.
Resumiendosepodraconcluirsubrayandolossiguientespuntos:
Los sistemas GIS nos permiten representar las condiciones muy prximas a las
condicionesrealesdeunincendio.

Pgina
94

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Cualquierapodraconstruirunsimuladorcomplejo,partiendodeunbuenmodelo(en
micasofueBehave),sinnecesidaddetocarcdigo,soloconociendoellenguajeSDL.
Lasimulacindistribuidanosproporcionamsvelocidaddeejecucin,laposibilidad
derealizarmsejecucionesalavezyporlotantodeobtenermsresultados.
Podemos ver en tres dimensiones y en tiempo real como transcurre un incendio
forestal,loquehacemscercanoelincendiovirtual,alincendioreal.
Loltimoaremarcaresqueaesteproyecto,sepuedeseguiramplindoloparatratar
lasdemsproblemticasnotratadasdelosincendiosforestalesyllegarhastaunpunto
quelasimulacinsealomsprximaposiblealincendioreal.

Pgina
95

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

8 TRABAJOFUTURO
Enesteproyectosepodranmejorarvariosaspectoseimplementarotrosyaqueporla
duracindelproyectohasidoimposible.
Losaspectosamejorarseranlossiguientes:

Sepodranaadirlosotrosmodelosdeincendios,yaquehemosvistoque
enesteproyectosolotratalosincendiosdesuperficie,porejemplotratarel
incendiodecopas,inclusocomointeractuaranentreellos.

Respectoalasalidadelasimulacinsepodramejorarhacindoladeuna
manera grfica, ms vistosa, agradable como puede ser mediante VRML
(pararepresentaciones3D)tambinmostrarcmotranscurreelincendio
enlazonaafectarealenGoogleEarth.

Lospuntosquesepodranaadirseranlosquevienenacontinuacin:

Integrar la simulacin en tiempo real con los sistemas GPS actuales, en la


universidadestnlosGPSrinoquetepermitiransaberlaposicinexactaen
elterrenoforestalylacomunicacinvaradio,demaneraquetepermitira
modificarlosdatosdeentradadelasimulacinsobreelterrenoyrealizar
unassimulacionesmsprecisas.

Aadir la problemtica de la extincin del fuego sera una opcin muy


interesantequepodraacabardecomplementaraestesimulador.

Pgina
96

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

9 ANEXOS
9.1 Problemas
Muchos de los problemas que me he encontrado al realizar este proyecto, vienen
sobretodoporqueesunproyectorealyderivandelacolaboracinconotrosproyectos
queactualmenteseestndesarrollando(unocondosestudiantesdelaUPCyotrocon
un estudiante de otra universidad), por lo que he tenido que ir sorteando estos
problemasysolucionndoloscomohepodido.
ElpasodelosdiagramasaxmlsepodahacermedianteunplugindelMicrosoftVisio
realizado por otros proyectistas, pero justamente para mi caso, no lo haca
correctamente, ya que en mis diagramas hay un caso que hay un bucle y esto no lo
tratababien,porloquedecidfinalmentecogerlosDTDyrealizarloamano.

9.2 Formatoidrisi32
Elficherodedatosserdetiporaster.
Raster: divide el espacio en celdas regulares, donde cada una de ellas representa un
nicovalor.Laestructuralgicaesunamallamatriz,peroseguardafsicamenteen
unficheroconunacolumna.
Unejemplodedatosraster
1

Endiscologuardaremosas:
1
2
3
4
5

Pgina
97

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

6
7
8
9
Los valores raster pueden ser enteros o nmeros con coma flotante y los archivos
sern de tipo ASCII, donde cada informacin raster estar compuesta por un
documento .doc con la informacin relativa a los datos raster y los datos raster
estarn en ficheros con la extensin .img. Los dos archivos tendrn el mismo
nombre.

9.3 XMLgenerado
ElarchivoqueespecificaelmodeloyloejecutaenelprogramaSDLPSeselsiguiente:
<?xml version="1.0"?>
<system id="0" name="SystemCelda" implementation=""
IP="192.168.0.137" portRead="8695" version="1.0">
<channels>
</channels>
<mnca id="1" name="MNCA_FUEGO" implementation=""
IP="192.168.0.137" portRead="8689">
<DCLS>
<DCL name="mnca_DIM" type="int" value="2"/>
<DCL name="mnca_D1" type="int" value="101"/>
<DCL name="mnca_D2" type="int" value="101"/>
<DCL name="mnca_M1[]" type="double" value=""/>
<DCL name="mnca_M10[]" type="double" value=""/>
<DCL name="mnca_M100[]" type="double" value=""/>
<DCL name="mnca_Mapa[]" type="double" value=""/>
<DCL name="mnca_MDirVents[]" type="double" value=""/>
<DCL name="mnca_MFusta[]" type="double" value=""/>
<DCL name="mnca_MHerba[]" type="double" value=""/>
<DCL name="mnca_MOrientacio[]" type="double" value=""/>
<DCL name="mnca_MPendent[]" type="double" value=""/>
<DCL name="mnca_MVelVents[]" type="double" value=""/>
<DCL name="mnca_Model[]" type="double" value=""/>
<DCL name="mnca_MInici[]" type="double" value=""/>
</DCLS>
<channels>
</channels>
<block id="1" name="BlockCelda" implementation=""
IP="192.168.0.137" portRead="8689">

Pgina
98

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<channels>
</channels>
<process id="1" name="ProcessCelda"
implementation="" IP="192.168.0.137" portRead="8690">
<DCLS>
<DCL name="PROPAGA" type="int"
value="0"></DCL>
<DCL name="EXTINGUIDO" type="int"
value="0"></DCL>
<DCL name="ProcessCelda_t"
type="double" value="0"></DCL>
<DCL name="currCell" type="int" value="0"></DCL>
<DCL name="tmpCell" type="int" value=""></DCL>
<DCL name="sum" type="double" value="0"></DCL>
<DCL name="tmp1" type="double" value="0"></DCL>
<DCL name="tmp2" type="double" value="0"></DCL>
<DCL name="nrow" type="int" value="0"></DCL>
<DCL name="ncol" type="int" value="0"></DCL>
<DCL name="Rows" type="int" value="101"></DCL>
<DCL name="Cols" type="int" value="101"></DCL>
<DCL name="ignMap" type="int" value="1"></DCL>
<DCL name="timeNext" type="double" value="0"></DCL>
<DCL name="nTimes" type="int" value="0"></DCL>
<DCL name="atEdge" type="int" value="0"></DCL>
<DCL name="fuelMap" type="int" value="1"></DCL>
<DCL name="m1Map" type="double" value=".10"></DCL>
<DCL name="m10Map" type="double" value=".10"></DCL>
<DCL name="m100Map" type="double"
value=".10"></DCL>
<DCL name="mherbMap" type="double"
value="1."></DCL>
<DCL name="mwoodMap" type="double"
value="1.50"></DCL>
<DCL name="slpMap" type="double" value="0"></DCL>
<DCL name="aspMap" type="double" value="0"></DCL>
<DCL name="wspdMap" type="double" value="4."></DCL>
<DCL name="wdirMap" type="double" value="0"></DCL>
<DCL name="flMap" type="double" value="0"></DCL>
<DCL name="ignM0" type="double" value="9999"></DCL>
<DCL name="ignM1" type="double" value="9999"></DCL>
<DCL name="ignM2" type="double" value="9999"></DCL>
<DCL name="ignM3" type="double" value="9999"></DCL>
<DCL name="ignM4" type="double" value="9999"></DCL>
<DCL name="ignM5" type="double" value="9999"></DCL>
<DCL name="ignM6" type="double" value="9999"></DCL>
<DCL name="ignM7" type="double" value="9999"></DCL>
<DCL name="propCell1" type="int" value="-1"></DCL>
<DCL name="propCell2" type="int" value="-1"></DCL>
<DCL name="propCell3" type="int" value="-1"></DCL>
<DCL name="propCell4" type="int" value="-1"></DCL>

Pgina
99

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<DCL name="propCell5" type="int" value="-1"></DCL>


<DCL name="propCell6" type="int" value="-1"></DCL>
<DCL name="propCell7" type="int" value="-1"></DCL>
<DCL name="propCell8" type="int" value="-1"></DCL>
<DCL name="delayCell" type="int" value="-1"></DCL>
</DCLS>
<procedures>
<procedure id="1" name="ArrivalTime"
implementation="">
<params>
<param name="ArrivalTime_t"
type="double" defvalue="" ref="yes"></param>
</params>
<body>
<task id="1"
name="">ArrivalTime_t=1;</task>
</body>
</procedure>
<procedure id="2" name="PropagarFuego"
implementation="">
<body>
</body>
</procedure>
<procedure id="3" name="InicializarFuego"
implementation="">
<body>
</body>
</procedure>
<procedure id="4" name="mncaGetCurrentCell"
implementation="CSDLOperationProcedureCallmncaGetCurrentCel
l">
<params>
<param name="MNCA_CURR_CELL" type="int"
defvalue="" ref="yes"></param>
</params>
</procedure>
<procedure id="5" name="mncaGetCellValue"
implementation="CSDLOperationProcedureCallmncaGetCellValue"
>
<params>
<param name="MNCA_GET_LAYER" type="char*"
defvalue="" ref="yes"></param>
<param name="MNCA_GET_CELL" type="int"
defvalue="" ref="yes"></param>
<param name="MNCA_GET_VALUE" type="double"
defvalue="" ref="yes"></param>
</params>
</procedure>

Pgina
100

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<procedure id="6" name="mncaSetCellValue"


implementation="CSDLOperationProcedureCallmncaSetCellValue"
>
<params>
<param name="MNCA_SET_LAYER" type="char*"
defvalue="" ref="yes"></param>
<param name="MNCA_SET_CELL" type="int"
defvalue="" ref="yes"></param>
<param name="MNCA_SET_VALUE" type="double"
defvalue="" ref="yes"></param>
</params>
</procedure>
<procedure id="6" name="FindDestination"
implementation="CSDLOperationProcedureCallFindDestination">
<params>
<param name="nextCell" type="int" defvalue=""
ref="yes"></param>
</params>
</procedure>
<procedure id="7" name="CalcProperties"
implementation="CSDLOperationProcedureCallCalcProperties">
<params>
<param name="Strength_1" type="double"
defvalue="" ref="yes"></param>
<param name="Thickness_1" type="double"
defvalue="" ref="yes"></param>
<param name="Speed_1" type="double" defvalue=""
ref="yes"></param>
<param name="Time_1" type="double" defvalue=""
ref="yes"></param>
<param name="Strength_2" type="double"
defvalue="" ref="yes"></param>
<param name="Thickness_2" type="double"
defvalue="" ref="yes"></param>
<param name="Speed_2" type="double" defvalue=""
ref="yes"></param>
<param name="Time_2" type="double" defvalue=""
ref="yes"></param>
</params>
</procedure>
<procedure id="8" name="CalculaDestiFrac"
implementation="CSDLOperationProcedureCallCalculaDestiFrac"
>
<params>
<param name="nextCell" type="int" defvalue=""
ref="yes"></param>
<param name="alcMin" type="double" defvalue=""
ref="yes"></param>
</params>
</procedure>

Pgina
101

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<procedure id="4" name="Vicinity"


implementation="">
<params>
<param name="ignMap" type="int" defvalue=""
ref="yes"></param>
<param name="m1Map" type="double" defvalue=""
ref="yes"></param>
<param name="m10Map" type="double" defvalue=""
ref="yes"></param>
<param name="m100Map" type="double" defvalue=""
ref="yes"></param>
<param name="mherbMap" type="double"
defvalue="" ref="yes"></param>
<param name="mwoodMap" type="double"
defvalue="" ref="yes"></param>
<param name="slpMap" type="double" defvalue=""
ref="yes"></param>
<param name="aspMap" type="double" defvalue=""
ref="yes"></param>
<param name="wspdMap" type="double" defvalue=""
ref="yes"></param>
<param name="wdirMap" type="double" defvalue=""
ref="yes"></param>
<param name="ignM0" type="double" defvalue=""
ref="yes"></param>
<param name="ignM1" type="double" defvalue=""
ref="yes"></param>
<param name="ignM2" type="double" defvalue=""
ref="yes"></param>
<param name="ignM3" type="double" defvalue=""
ref="yes"></param>
<param name="ignM4" type="double" defvalue=""
ref="yes"></param>
<param name="ignM5" type="double" defvalue=""
ref="yes"></param>
<param name="ignM6" type="double" defvalue=""
ref="yes"></param>
<param name="ignM7" type="double" defvalue=""
ref="yes"></param>
</params>
<body>
<procedurecall id="1"
name="mncaGetCurrentCell">
<param name="MNCA_CURR_CELL"
value="tmpCell"></param>
</procedurecall>
<procedurecall id="2" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>

Pgina
102

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignMap"></param>
</procedurecall>
<procedurecall id="3"
name="mncaGetCellValue"><!-- NO FUNCIONA CON TODAS LAS
CAPAS !!!-->
<param name="MNCA_SET_LAYER"
value="'M1'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="m1Map"></param>
</procedurecall>
<procedurecall id="4" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'M10'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="m10Map"></param>
</procedurecall>
<procedurecall id="5" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'M100'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="m100Map"></param>
</procedurecall>
<procedurecall id="6" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'MHerba'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="mherbMap"></param>
</procedurecall>
<procedurecall id="7" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'MFusta'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="mwoodMap"></param>
</procedurecall>
<procedurecall id="8" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'MPendent'"></param>

Pgina
103

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="slpMap"></param>
</procedurecall>
<procedurecall id="9" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'MOrientacio'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="aspMap"></param>
</procedurecall>
<procedurecall id="10" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'MVelVents'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="wspdMap"></param>
</procedurecall>
<procedurecall id="11" name="mncaGetCellValue">
<param name="MNCA_SET_LAYER"
value="'MDirVents'"></param>
<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="wdirMap"></param>
</procedurecall>
<task id="12" name="">currCell=tmoCell;nrow =
getPosicion(tmpCell,0) + 1;ncol = getPosicion(tmpCell,1) +
0;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="13" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM0"></param>
</procedurecall>
<task id="14" name="">nrow =
getPosicion(tmpCell,0) + 1;ncol = getPosicion(tmpCell,1) +
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="15" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM1"></param>

Pgina
104

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</procedurecall>
<task id="16" name="">nrow =
getPosicion(tmpCell,0) + 0;ncol = getPosicion(tmpCell,1) +
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="17" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM2"></param>
</procedurecall>
<task id="18" name="">nrow =
getPosicion(tmpCell,0) - 1;ncol = getPosicion(tmpCell,1) +
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="19" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM3"></param>
</procedurecall>
<task id="20" name="">nrow =
getPosicion(tmpCell,0) - 1;ncol = getPosicion(tmpCell,1) +
0;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="21" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM4"></param>
</procedurecall>
<task id="22" name="">nrow =
getPosicion(tmpCell,0) - 1;ncol = getPosicion(tmpCell,1) 1
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="23" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM5"></param>
</procedurecall>
<task id="24" name="">nrow =
getPosicion(tmpCell,0) + 0;ncol = getPosicion(tmpCell,1) 1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="25" name="mncaGetCellValue">

Pgina
105

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM6"></param>
</procedurecall>
<task id="26" name="">nrow =
getPosicion(tmpCell,0) + 1;ncol = getPosicion(tmpCell,1) 1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="27" name="mncaGetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="ignM7"></param>
</procedurecall>
</body>
</procedure>
<procedure id="5" name="Nucleus" implementation="">
<params>
<param name="ignMap" type="int" defvalue=""
ref="yes"></param>
<param name="ignM0" type="double" defvalue=""
ref="yes"></param>
<param name="ignM1" type="double" defvalue=""
ref="yes"></param>
<param name="ignM2" type="double" defvalue=""
ref="yes"></param>
<param name="ignM3" type="double" defvalue=""
ref="yes"></param>
<param name="ignM4" type="double" defvalue=""
ref="yes"></param>
<param name="ignM5" type="double" defvalue=""
ref="yes"></param>
<param name="ignM6" type="double" defvalue=""
ref="yes"></param>
<param name="ignM7" type="double" defvalue=""
ref="yes"></param>
</params>
<body>
<procedurecall id="1"
name="mncaGetCurrentCell">
<param name="MNCA_CURR_CELL"
value="tmpCell"></param>
</procedurecall>
<procedurecall id="2" name="mncaSetCellValue">
<param name="MNCA_SET_LAYER"
value="'BlockCelda'"></param>

Pgina
106

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<param name="MNCA_SET_CELL"
value="tmpCell"></param>
<param name="MNCA_SET_VALUE"
value="ignMap"></param>
</procedurecall>
<task id="3" name="">nrow =
getPosicion(tmpCell,0) + 1;ncol = getPosicion(tmpCell,1) +
0;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="4" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell0"></param>
</procedurecall>
<task id="5" name="">nrow =
getPosicion(tmpCell,0) + 1;ncol = getPosicion(tmpCell,1) +
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="6" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell1"></param>
</procedurecall>
<task id="7" name="">nrow =
getPosicion(tmpCell,0) + 0;ncol = getPosicion(tmpCell,1) +
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="8" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell2"></param>
</procedurecall>
<task id="9" name="">nrow =
getPosicion(tmpCell,0) - 1;ncol = getPosicion(tmpCell,1) +
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="10" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell3"></param>
</procedurecall>

Pgina
107

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<task id="11" name="">nrow =


getPosicion(tmpCell,0) - 1;ncol = getPosicion(tmpCell,1) +
0;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="12" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell4"></param>
</procedurecall>
<task id="13" name="">nrow =
getPosicion(tmpCell,0) - 1;ncol = getPosicion(tmpCell,1) 1
1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="14" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell5"></param>
</procedurecall>
<task id="15" name="">nrow =
getPosicion(tmpCell,0) + 0;ncol = getPosicion(tmpCell,1) 1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="16" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell6"></param>
</procedurecall>
<task id="17" name="">nrow =
getPosicion(tmpCell,0) + 1;ncol = getPosicion(tmpCell,1) 1;tmpCell = ncol + nrow*Cols;</task>
<procedurecall id="18" name="mncaSetCellValue">
<param name="MNCA_GET_LAYER"
value="'BlockCelda'"></param>
<param name="MNCA_GET_CELL"
value="tmpCell"></param>
<param name="MNCA_GET_VALUE"
value="propCell7"></param>
</procedurecall>
</body>
</procedure>
</procedures>
<start>
<procedurecall id="1" name="ArrivalTime">

Pgina
108

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<task id="2"
name="">currCell=getCeldaInicio(Rows,Cols);InicializarFuego
(Rows,Cols,ignMap);</task>
<output id="3" name="Arder" self="yes" to=""
via="">
<param name="creationtime" value="0"></param>
<param name="executiontime"
value="ProcessCelda_t"></param>
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority" value="0"></param>
<param name="type" value="Arder"></param>
<param name="mnca_cell[]"
value="{currCell}"></param>
<userparam name="currCell"
value="currCell"></userparam>
</output>
<setstate id="4" name="NoQuemado"></setstate>
</start>
<state name="NoQuemado">
<input id="1" name="Arder"></input>
<procedurecall id="2" name="Vicinity">
<param name="ignMap" value="ignMap"></param>
<param name="m1Map" value="m1Map"></param>
<param name="m10Map" value="m10Map"></param>
<param name="m100Map" value="m100Map"></param>
<param name="mherbMap" value="mherbMap"></param>
<param name="mwoodMap" value="mwoodMap"></param>
<param name="slpMap" value="slpMap"></param>
<param name="aspMap" value="aspMap"></param>
<param name="wspdMap" value="wspdMap"></param>
<param name="wdirMap" value="wdirMap"></param>
<param name="ignM0" value="ignM0"></param>
<param name="ignM1" value="ignM1"></param>
<param name="ignM2" value="ignM2"></param>
<param name="ignM3" value="ignM3"></param>
<param name="ignM4" value="ignM4"></param>
<param name="ignM5" value="ignM5"></param>
<param name="ignM6" value="ignM6"></param>
<param name="ignM7" value="ignM7"></param>
</procedurecall>
<task id="3"
name="">PropagarFuego(ProcessCelda_t,Rows,Cols,fuelMap,m1Ma
p,m10Map,m100Map,mherbMap,mwoodMap,slpMap,aspMap,wspdMap,wd
irMap,ignMap,flMap,currCell,ignM0,ignM1,ignM2,ignM3,ignM4,i
gnM5,ignM6,ignM7);propCell1=ObtenerCeldasIncendiadas(0);pro
pCell2=ObtenerCeldasIncendiadas(1);propCell3=ObtenerCeldasI

Pgina
109

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

ncendiadas(2);propCell4=ObtenerCeldasIncendiadas(3);propCel
l5=ObtenerCeldasIncendiadas(4);propCell6=ObtenerCeldasIncen
diadas(5);propCell7=ObtenerCeldasIncendiadas(6);propCell8=O
btenerCeldasIncendiadas(7);</task>
<procedurecall id="4" name="Nucleus"><!-- NO SALVAR
CELDAS -1 -->
<param name="CellValue" value="ignMap"></param>
<param name="ignM0" value="ignM0"></param>
<param name="ignM1" value="ignM1"></param>
<param name="ignM2" value="ignM2"></param>
<param name="ignM3" value="ignM3"></param>
<param name="ignM4" value="ignM4"></param>
<param name="ignM5" value="ignM5"></param>
<param name="ignM6" value="ignM6"></param>
<param name="ignM7" value="ignM7"></param>
</procedurecall>
<procedurecall id="5"
name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<task id="6" name=""></task>
<output id="7" name="Propagar"
self="yes" to="" via=""><!-- NO ENVIAR A LAS CELDAS -1 -->
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
<param name="mnca_cell[]"
value="{propCell1,propCell2,propCell3,propCell4,propCell5,p
ropCell6,propCell7,propCell8}"></param>
<userparam name="delayCell"
value="ProcessCelda_t"></userparam>
<userparam name="propCell1"
value="propCell1"></userparam>
</output>
<setstate id="8"
name="Ardiendo"></setstate>
<input id="9" name="Propagar"></input>
<procedurecall id="10" name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<output id="11" name="Propagar" self="yes" to=""
via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority" value="0"></param>
</output>
<setstate id="12" name="Ardiendo"></setstate>

Pgina
110

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</state>
<state name="Quemado">
<input id="1" name="Arder"></input>
<procedurecall id="2"
name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<output id="2" name="" self="yes" to=""
via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
</output>
<setstate id="3"
name="Quemado"></setstate>
</state>
<state name="Ardiendo">
<input id="1" name="Arder"></input>
<procedurecall id="2"
name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<output id="3" name="" self="yes" to=""
via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
</output>
<setstate id="4"
name="Ardiendo"></setstate>
<input id="5" name="Extinguir"></input>
<procedurecall id="6"
name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<output id="6" name="" self="yes" to=""
via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
</output>
<setstate id="7"
name="Quemado"></setstate>
<input id="8" name="Propagar"></input>

Pgina
111

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<procedurecall id="9"
name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<procedurecall id="10" name="Vicinity">
<param name="ignMap" value="ignMap"></param>
<param name="m1Map" value="m1Map"></param>
<param name="m10Map" value="m10Map"></param>
<param name="m100Map" value="m100Map"></param>
<param name="mherbMap" value="mherbMap"></param>
<param name="mwoodMap" value="mwoodMap"></param>
<param name="slpMap" value="slpMap"></param>
<param name="aspMap" value="aspMap"></param>
<param name="wspdMap" value="wspdMap"></param>
<param name="wdirMap" value="wdirMap"></param>
<param name="ignM0" value="ignM0"></param>
<param name="ignM1" value="ignM1"></param>
<param name="ignM2" value="ignM2"></param>
<param name="ignM3" value="ignM3"></param>
<param name="ignM4" value="ignM4"></param>
<param name="ignM5" value="ignM5"></param>
<param name="ignM6" value="ignM6"></param>
<param name="ignM7" value="ignM7"></param>
</procedurecall>
<task id="11"
name="">PropagarFuego(ProcessCelda_t,Rows,Cols,fuelMap,m1Ma
p,m10Map,m100Map,mherbMap,mwoodMap,slpMap,aspMap,wspdMap,wd
irMap,ignMap,flMap,currCell,ignM0,ignM1,ignM2,ignM3,ignM4,i
gnM5,ignM6,ignM7);propCell1=ObtenerCeldasIncendiadas(0);pro
pCell2=ObtenerCeldasIncendiadas(1);propCell3=ObtenerCeldasI
ncendiadas(2);propCell4=ObtenerCeldasIncendiadas(3);propCel
l5=ObtenerCeldasIncendiadas(4);propCell6=ObtenerCeldasIncen
diadas(5);propCell7=ObtenerCeldasIncendiadas(6);propCell8=O
btenerCeldasIncendiadas(7);</task>
<procedurecall id="12" name="Nucleus">
<!-- NO SALVAR CELDAS -1 -->
<param name="CellValue" value="ignMap"></param>
<param name="ignM0" value="ignM0"></param>
<param name="ignM1" value="ignM1"></param>
<param name="ignM2" value="ignM2"></param>
<param name="ignM3" value="ignM3"></param>
<param name="ignM4" value="ignM4"></param>
<param name="ignM5" value="ignM5"></param>
<param name="ignM6" value="ignM6"></param>
<param name="ignM7" value="ignM7"></param>
</procedurecall>
<decision id="13" name="PROPAGA" iftrue="19"
iffalse="14">PROPAGA==1</decision>

Pgina
112

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<decision id="14" name="EXTINGUIDO"


iftrue="23" iffalse="15">EXTINGUIDO==1</decision>
<output id="15" name="Propagar" self="yes" to=""
via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority" value="0"></param>
<param name="mnca_cell[]"
value="{propCell1,propCell2,propCell3,propCell4,propCell5,p
ropCell6,propCell7,propCell8}"></param>
<userparam name="delayCell"
value="ProcessCelda_t"></userparam>
<userparam name="propCell1"
value="propCell1"></userparam>
</output>
<setstate id="16"
name="Ardiendo"></setstate>
<output id="17" name="Extinguir"
self="yes" to="" via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
</output>
<setstate id="18"
name="Quemado"></setstate>
<output id="19" name="Arder" self="yes"
to="" via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
</output>
<decision id="20" iftrue="23"
name="EXTINGUIDO" iffalse="21">EXTINGUIDO==1</decision>
<output id="21" name="Propagar"
self="yes" to="" via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
<param name="mnca_cell[]"
value="{propCell1,propCell2,propCell3,propCell4,propCell5,p
ropCell6,propCell7,propCell8}"></param>
<userparam name="delayCell"
value="ProcessCelda_t"></userparam>
<userparam name="propCell1"
value="propCell1"></userparam>
</output>

Pgina
113

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<setstate id="22"
name="Ardiendo"></setstate>
<output id="23" name="Extinguir"
self="yes" to="" via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority"
value="0"></param>
</output>
<setstate id="24"
name="Quemado"></setstate>
<input id="25"
name="ActualizarDatos"></input>
<procedurecall id="26"
name="ArrivalTime">
<param name="ArrivalTime_t"
value="ProcessCelda_t"></param>
</procedurecall>
<procedurecall id="27" name="Vicinity">
<param name="ignMap" value="ignMap"></param>
<param name="m1Map" value="m1Map"></param>
<param name="m10Map" value="m10Map"></param>
<param name="m100Map" value="m100Map"></param>
<param name="mherbMap" value="mherbMap"></param>
<param name="mwoodMap" value="mwoodMap"></param>
<param name="slpMap" value="slpMap"></param>
<param name="aspMap" value="aspMap"></param>
<param name="wspdMap" value="wspdMap"></param>
<param name="wdirMap" value="wdirMap"></param>
<param name="ignM0" value="ignM0"></param>
<param name="ignM1" value="ignM1"></param>
<param name="ignM2" value="ignM2"></param>
<param name="ignM3" value="ignM3"></param>
<param name="ignM4" value="ignM4"></param>
<param name="ignM5" value="ignM5"></param>
<param name="ignM6" value="ignM6"></param>
<param name="ignM7" value="ignM7"></param>
</procedurecall>
<task id="28"
name="">PropagarFuego(ProcessCelda_t,Rows,Cols,fuelMap,m1Ma
p,m10Map,m100Map,mherbMap,mwoodMap,slpMap,aspMap,wspdMap,wd
irMap,ignMap,flMap,currCell,ignM0,ignM1,ignM2,ignM3,ignM4,i
gnM5,ignM6,ignM7);propCell1=ObtenerCeldasIncendiadas(0);pro
pCell2=ObtenerCeldasIncendiadas(1);propCell3=ObtenerCeldasI
ncendiadas(2);propCell4=ObtenerCeldasIncendiadas(3);propCel
l5=ObtenerCeldasIncendiadas(4);propCell6=ObtenerCeldasIncen
diadas(5);propCell7=ObtenerCeldasIncendiadas(6);propCell8=O
btenerCeldasIncendiadas(7);</task>
<procedurecall id="29" name="Nucleus">
<!-- NO SALVAR CELDAS -1 -->

Pgina
114

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<param name="CellValue" value="ignMap"></param>


<param name="ignM0" value="ignM0"></param>
<param name="ignM1" value="ignM1"></param>
<param name="ignM2" value="ignM2"></param>
<param name="ignM3" value="ignM3"></param>
<param name="ignM4" value="ignM4"></param>
<param name="ignM5" value="ignM5"></param>
<param name="ignM6" value="ignM6"></param>
<param name="ignM7" value="ignM7"></param>
</procedurecall>
<output id="30" name="Propagar" self="yes" to=""
via="">
<param name="delay"
value="ProcessCelda_t"></param>
<param name="priority" value="0"></param>
<param name="mnca_cell[]"
value="{propCell1,propCell2,propCell3,propCell4,propCell5,p
ropCell6,propCell7,propCell8}"></param>
<userparam name="delayCell"
value="ProcessCelda_t"></userparam>
<userparam name="propCell1"
value="propCell1"></userparam>
</output>
<setstate id="31"
name="Ardiendo"></setstate>
</state>
</process>
</block>
</mnca>
</system>

9.4 FicheroXSD
Elficheroxsdquedefinelaestructuradelficheroxmlgeneradoparaelsimuladorcon
elsoftwareSDLPSeselsiguiente:
<?xml version="1.0" encoding="utf-8" ?>
<!--Created with Liquid XML Studio - 30 Day Trial Edition
7.0.5.906 (http://www.liquid-technologies.com)-->
<xs:schema xmlns:xsd="undefined"
attributeFormDefault="unqualified"
elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="system">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="blockType">
<xs:attribute name="version" type="xs:decimal"
use="required" />

Pgina
115

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>
<xs:complexType name="processType">
<xs:sequence>
<xs:element minOccurs="0" name="DCLS">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="DCL">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="type" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="procedures">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="procedure">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="procedureType" />
</xs:complexContent>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="start"
type="startType" />
<xs:element minOccurs="0" maxOccurs="unbounded"
name="state">
<xs:complexType>
<xs:complexContent mixed="false">
<xs:extension base="stateType">
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:element>

Pgina
116

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="required" />
<xs:attribute name="name" type="xs:string"
use="required" />
<xs:attribute name="implementation" type="xs:string"
use="required" />
<xs:attribute name="IP" type="xs:string" use="required"
/>
<xs:attribute name="portRead" type="xs:unsignedShort"
use="required" />
</xs:complexType>
<xs:complexType name="blockType">
<xs:sequence>
<xs:element minOccurs="0" name="representations">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0"
name="representation">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="mesh"
type="xs:string" />
<xs:element minOccurs="0" name="position"
/>
</xs:sequence>
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="channels">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="channel">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0"
maxOccurs="unbounded" name="event">
<xs:complexType>
<xs:attribute name="name"
type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"
use="optional" />

Pgina
117

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:attribute name="start" type="xs:string"


use="optional" />
<xs:attribute name="end" type="xs:string"
use="optional" />
<xs:attribute name="dual" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:choice>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="mnca" type="mncaType" />
<xs:element minOccurs="0" maxOccurs="unbounded"
name="block" type="blockType" />
</xs:sequence>
<xs:element maxOccurs="unbounded" name="process"
type="processType" />
</xs:choice>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="required" />
<xs:attribute name="name" type="xs:string"
use="required" />
<xs:attribute name="implementation" type="xs:string"
use="required" />
<xs:attribute name="IP" type="xs:string" use="required"
/>
<xs:attribute name="portRead" type="xs:unsignedShort"
use="required" />
</xs:complexType>
<xs:complexType name="mncaType">
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="1" name="dim">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="size" type="xs:unsignedByte" />
</xs:sequence>
<xs:attribute name="size" type="xs:unsignedByte"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="channels">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="channel">
<xs:complexType>

Pgina
118

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:sequence>
<xs:element minOccurs="0"
maxOccurs="unbounded" name="event">
<xs:complexType>
<xs:attribute name="name"
type="xs:string" use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="start" type="xs:string"
use="optional" />
<xs:attribute name="end" type="xs:string"
use="optional" />
<xs:attribute name="dual" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="block"
type="blockType" />
<xs:element minOccurs="0" name="representations">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0"
name="representation">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="mesh"
type="xs:string" />
<xs:element minOccurs="0" name="position"
/>
</xs:sequence>
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="required" />
<xs:attribute name="name" type="xs:string"
use="required" />
<xs:attribute name="implementation" type="xs:string"
use="required" />

Pgina
119

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:attribute name="IP" type="xs:string" use="required"


/>
<xs:attribute name="portRead" type="xs:string"
use="required" />
</xs:complexType>
<xs:complexType name="procedureType">
<xs:sequence>
<xs:element minOccurs="0" name="params">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="type" type="xs:string"
use="optional" />
<xs:attribute name="defvalue"
type="xs:string" use="optional" />
<xs:attribute name="ref" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" name="body" type="bodyType"
/>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="implementation" type="xs:string"
use="optional" />
</xs:complexType>
<xs:complexType name="stateType">
<xs:choice maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded"
name="decision">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="iftrue"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="iffalse"
type="xs:unsignedByte" use="optional" />

Pgina
120

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="create">
<xs:complexType>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="target" type="xs:string"
use="optional" />
<xs:attribute name="qtt" type="xs:unsignedByte"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="output">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="userparam">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="self" type="xs:string"
use="optional" />
<xs:attribute name="to" type="xs:string"
use="optional" />
<xs:attribute name="via" type="xs:string"
use="optional" />

Pgina
121

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="procedurecall">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" maxOccurs="unbounded"
name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="task">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="setstate">
<xs:complexType>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="input">
<xs:complexType>
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" name="param">
<xs:complexType>

Pgina
122

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:attribute name="name" type="xs:string"


use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="bodyType">
<xs:choice maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded"
name="decision">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="iftrue"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="iffalse"
type="xs:unsignedByte" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="create">
<xs:complexType>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="target" type="xs:string"
use="optional" />
<xs:attribute name="qtt" type="xs:unsignedByte"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="output">
<xs:complexType>

Pgina
123

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="userparam">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="self" type="xs:string"
use="optional" />
<xs:attribute name="to" type="xs:string"
use="optional" />
<xs:attribute name="via" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="procedurecall">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" maxOccurs="unbounded"
name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />

Pgina
124

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="task">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:complexType name="startType">
<xs:choice maxOccurs="unbounded">
<xs:element minOccurs="0" maxOccurs="unbounded"
name="decision">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="iftrue"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="iffalse"
type="xs:unsignedByte" use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="create">
<xs:complexType>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="target" type="xs:string"
use="optional" />
<xs:attribute name="qtt" type="xs:unsignedByte"
use="optional" />
</xs:complexType>
</xs:element>

Pgina
125

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:element minOccurs="0" maxOccurs="unbounded"


name="output">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="userparam">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="self" type="xs:string"
use="optional" />
<xs:attribute name="to" type="xs:string"
use="optional" />
<xs:attribute name="via" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="procedurecall">
<xs:complexType mixed="true">
<xs:sequence minOccurs="0">
<xs:element minOccurs="0" maxOccurs="unbounded"
name="param">
<xs:complexType>
<xs:attribute name="name" type="xs:string"
use="optional" />
<xs:attribute name="value" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:sequence>

Pgina
126

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

<xs:attribute name="id" type="xs:unsignedByte"


use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="task">
<xs:complexType>
<xs:simpleContent>
<xs:extension base="xs:string">
<xs:attribute name="id"
type="xs:unsignedByte" use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="unbounded"
name="setstate">
<xs:complexType>
<xs:attribute name="id" type="xs:unsignedByte"
use="optional" />
<xs:attribute name="name" type="xs:string"
use="optional" />
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:schema>

9.5 ResuldadossimulacinBehave
ElresuldadodelmodeloBehavehasidogeneradoconunejemploquetraelalabreria
firelibyeselquevieneacontinuacin.
north:10100
south:0
east:10100
west:0
rows:101

Pgina
127

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

cols:101
000000000000000000000000000000000000000000000000
02061982060000000000000000000000000000000000000000
000000000
000000000000000000000000000000000000000000000000
02031952030000000000000000000000000000000000000000
000000000
000000000000000000000000000000000000000000000000
02011932010000000000000000000000000000000000000000
000000000
000000000000000000000000000000000000000000000000
206198190198206000000000000000000000000000000000000
000000000000
000000000000000000000000000000000000000000000000
204195187195204000000000000000000000000000000000000
000000000000
000000000000000000000000000000000000000000000000
201193185193201000000000000000000000000000000000000
000000000000
00000000000000000000000000000000000000000000000
2061981901821901982060000000000000000000000000000000
0000000000000000
00000000000000000000000000000000000000000000000
2041961881791881962040000000000000000000000000000000
0000000000000000

Pgina
128

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000000000000
2011931851771851932010000000000000000000000000000000
0000000000000000
0000000000000000000000000000000000000000000000
207199190182174182190199207000000000000000000000000000
0000000000000000000
0000000000000000000000000000000000000000000000
204196188180172180188196204000000000000000000000000000
0000000000000000000
0000000000000000000000000000000000000000000000
201193185177169177185193201000000000000000000000000000
0000000000000000000
000000000000000000000000000000000000000000000207
199191183174166174183191199207000000000000000000000000
000000000000000000000
000000000000000000000000000000000000000000000204
196188180172164172180188196204000000000000000000000000
000000000000000000000
000000000000000000000000000000000000000000000202
194185177169161169177185194202000000000000000000000000
000000000000000000000
00000000000000000000000000000000000000000000207
19919118317516715816717518319119920700000000000000000000
000000000000000000000000
00000000000000000000000000000000000000000000205
19618818017216415616417218018819620500000000000000000000
000000000000000000000000

Pgina
129

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000000000202
19418617816916115316116917818619420200000000000000000000
000000000000000000000000
0000000000000000000000000000000000000000000207199
19118317516715915115916717518319119920700000000000000000
00000000000000000000000000
0000000000000000000000000000000000000000000205197
18918017216415614815616417218018919720500000000000000000
00000000000000000000000000
0000000000000000000000000000000000000000000202194
18617817016215314515316217017818619420200000000000000000
00000000000000000000000000
000000000000000000000000000000000000000000208200
191183175167159151143151159167175183191200208000000000000
000000000000000000000000000000
000000000000000000000000000000000000000000205197
189181173164156148140148156164173181189197205000000000000
000000000000000000000000000000
000000000000000000000000000000000000000000202194
186178170162154146137146154162170178186194202000000000000
000000000000000000000000000000
00000000000000000000000000000000000000000208200192
1841751671591511431351431511591671751841922002080000000000
0000000000000000000000000000000
00000000000000000000000000000000000000000205197189
1811731651571481401321401481571651731811891972050000000000
0000000000000000000000000000000

Pgina
130

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000000203195186
1781701621541461381301381461541621701781861952030000000000
0000000000000000000000000000000
0000000000000000000000000000000000000000208200192
18417616815915114313512713514315115916817618419220020800000
00000000000000000000000000000000000
0000000000000000000000000000000000000000205197189
18117316515714914113212413214114915716517318118919720500000
00000000000000000000000000000000000
0000000000000000000000000000000000000000203195187
17917016215414613813012213013814615416217017918719520300000
00000000000000000000000000000000000
000000000000000000000000000000000000000208200192
184176168160152143135127119127135143152160168176184192200208
000000000000000000000000000000000000000
000000000000000000000000000000000000000206198189
181173165157149141133125116125133141149157165173181189198206
000000000000000000000000000000000000000
000000000000000000000000000000000000000203195187
179171163154146138130122114122130138146154163171179187195203
000000000000000000000000000000000000000
000000000000000000000000000000000000000200192184
176168160152144136127119111119127136144152160168176184192200
000000000000000000000000000000000000000
00000000000000000000000000000000000000206198190182
174165157149141133125117109117125133141149157165174182190198
20600000000000000000000000000000000000000

Pgina
131

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000203195187179
171163155147138130122114106114122130138147155163171179187195
20300000000000000000000000000000000000000
00000000000000000000000000000000000000201193184176
168160152144136128120111103111120128136144152160168176184193
20100000000000000000000000000000000000000
0000000000000000000000000000000000000206198190182
174166158149141133125117109101109117125133141149158166174182
1901982060000000000000000000000000000000000000
0000000000000000000000000000000000000204195187179
17116315514713913112211410698106114122131139147155163171179
1871952040000000000000000000000000000000000000

0000000000000000000000000000000000000201193185177
16916015214413612812011210495104112120128136144152160169177
1851932010000000000000000000000000000000000000

000000000000000000000000000000000000206198190182174
16615815014213312511710910193101109117125133142150158166174
182190198206000000000000000000000000000000000000
000000000000000000000000000000000000204196188179171
163155147139131123115106989098106115123131139147155163171179
188196204000000000000000000000000000000000000
000000000000000000000000000000000000201193185177169
161153144136128120112104968896104112120128136144153161169177
185193201000000000000000000000000000000000000

Pgina
132

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000207199190182174
166158150142134126117109101938593101109117126134142150158166
17418219019920700000000000000000000000000000000000
00000000000000000000000000000000000204196188180172
1631551471391311231151079990829099107115123131139147155163
17218018819620400000000000000000000000000000000000
00000000000000000000000000000000000201193185177169
1611531451371281201121049688808896104112120128137145153161
16917718519320100000000000000000000000000000000000
0000000000000000000000000000000000207199191183174166
1581501421341261181101019385778593101110118126134142150158
1661741831911992070000000000000000000000000000000000
0000000000000000000000000000000000204196188180172164
15614813913112311510799918374839199107115123131139148156164
1721801881962040000000000000000000000000000000000
0000000000000000000000000000000000202194185177169161
15314513712912111210496888072808896104112121129137145153161
1691771851942020000000000000000000000000000000000
000000000000000000000000000000000207199191183175167
15815014213412611811010294857769778594102110118126134142150
1581671751831911992070000000000000000000000000000000
00
000000000000000000000000000000000205196188180172164
156148140132123115107999183756775839199107115123132140148156
164172180188196205000000000000000000000000000000000

Pgina
133

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000202194186178169161
153145137129121113105968880726472808896105113121129137145153
161169178186194202000000000000000000000000000000000
00000000000000000000000000000000207199191183175167
159151143134126118110102948678696169788694102110118126134143
15115916717518319119920700000000000000000000000000000
000
00000000000000000000000000000000205197189180172164
1561481401321241161079991837567596775839199107116124132140
14815616417218018919720500000000000000000000000000000
000
00000000000000000000000000000000202194186178170162
1531451371291211131059789807264566472808997105113121129137
14515316217017818619420200000000000000000000000000000
000
0000000000000000000000000000000208200191183175167159
1511431351271181101029486787062536270788694102110118127135
143151159167175183191200208000000000000000000000000000
0000
0000000000000000000000000000000205197189181173164156
1481401321241161081009183756759515967758391100108116124132
140148156164173181189197205000000000000000000000000000
0000
0000000000000000000000000000000214194186178170162154
14613712912111310597898173645648566473818997105113121129137
14615416217017818619421400000000000000000000000000000
00

Pgina
134

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

0000000000000000000000000000000239203184175167159151
14313512711911110294867870625446546270788694102111119127135
14315115916717518420323900000000000000000000000000000
00
00000000000000000000000000000000212192173165157148
14013212411610810092847567595143515967758492100108116124132
1401481571651731922120000000000000000000000000000000
0
00000000000000000000000000000000237201182162154146
138130122113105978981736557484048576573818997105113122130
1381461541621822012370000000000000000000000000000000
0
000000000000000000000000000000000210191171151143135
127119111103958678706254463846546270788695103111119127135
143151171191210000000000000000000000000000000000
000000000000000000000000000000000235199180160141132
124116108100928476685951433543515968768492100108116124132
141160180199235000000000000000000000000000000000
0000000000000000000000000000000000208189169149130122
1141069789817365574941324149576573818997106114122130149169
1892080000000000000000000000000000000000
0000000000000000000000000000000000217197178158139119
1111039587797062544638303846546270798795103111119139158178
1972170000000000000000000000000000000000
0000000000000000000000000000000000242206187167148128
1081009284766860524335273543526068768492100108128148167187
2062420000000000000000000000000000000000

Pgina
135

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000215196176156137
11798908173655749413325334149576573819098117137156176196
21500000000000000000000000000000000000
00000000000000000000000000000000000240204185165146
1261068779716354463830223038465463717987106126146165185204
24000000000000000000000000000000000000
000000000000000000000000000000000000213194174155135
1159676686052443627192736445260687696115135155174194213000
000000000000000000000000000000000
000000000000000000000000000000000000238203183163144
1241058565574941332517253341495765851051241441631832032380
00000000000000000000000000000000000
0000000000000000000000000000000000000211192172153
1331139474554738302214223038475574941131331531721922110000
000000000000000000000000000000000
0000000000000000000000000000000000000236201181161
1421221038364443628201120283644648310312214216118120123600
00000000000000000000000000000000000
00000000000000000000000000000000000000210190170151
131112927253332517917253353729211213115117019021000000000
000000000000000000000000000000
00000000000000000000000000000000000000235199179160
140120101816242221461422426281101120140160179199235000000
00000000000000000000000000000000
000000000000000000000000000000000000000208188168
149129110907151311241231517190110129149168188208000000000
000000000000000000000000000000

Pgina
136

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000000000216197177
158138119997960402112140607999119138158177197216000000000
000000000000000000000000000000
000000000000000000000000000000000000000242222202
1831631441241048565463846658510412414416318320222224200000
0000000000000000000000000000000000
00000000000000000000000000000000000000000227208188
16914913011090827482901101301491691882082270000000000000
0000000000000000000000000000
000000000000000000000000000000000000000000233213
194174155135127119111119127135155174194213233000000000000
000000000000000000000000000000
0000000000000000000000000000000000000000000238219
19918017216315514715516317218019921923800000000000000000
00000000000000000000000000
000000000000000000000000000000000000000000000224
216208200192184192200208216224000000000000000000000000
000000000000000000000
000000000000000000000000000000000000000000000000
237228220228237000000000000000000000000000000000000
000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000

Pgina
137

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000

Pgina
138

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000

9.6 ResultadossimulacinPFCnodistribuido
ElresultadogeneradopornuestrosimuladorejecutadoconelSDLPSeselsiguiente:
rows:101

Pgina
139

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

cols:101
000000000000000000000000000000000000000000000000
02061982060000000000000000000000000000000000000000
000000000
000000000000000000000000000000000000000000000000
02031952030000000000000000000000000000000000000000
000000000
000000000000000000000000000000000000000000000000
02011932010000000000000000000000000000000000000000
000000000
000000000000000000000000000000000000000000000000
206198190198206000000000000000000000000000000000000
000000000000
000000000000000000000000000000000000000000000000
204195187195204000000000000000000000000000000000000
000000000000
000000000000000000000000000000000000000000000000
201193185193201000000000000000000000000000000000000
000000000000
00000000000000000000000000000000000000000000000
2061981901821901982060000000000000000000000000000000
0000000000000000
00000000000000000000000000000000000000000000000
2041961881791881962040000000000000000000000000000000
0000000000000000

Pgina
140

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000000000000
2011931851771851932010000000000000000000000000000000
0000000000000000
0000000000000000000000000000000000000000000000
207199190182174182190199207000000000000000000000000000
0000000000000000000
0000000000000000000000000000000000000000000000
204196188180172180188196204000000000000000000000000000
0000000000000000000
0000000000000000000000000000000000000000000000
201193185177169177185193201000000000000000000000000000
0000000000000000000
000000000000000000000000000000000000000000000207
199191183174166174183191199207000000000000000000000000
000000000000000000000
000000000000000000000000000000000000000000000204
196188180172164172180188196204000000000000000000000000
000000000000000000000
000000000000000000000000000000000000000000000202
194185177169161169177185194202000000000000000000000000
000000000000000000000
00000000000000000000000000000000000000000000207
19919118317516715816717518319119920700000000000000000000
000000000000000000000000
00000000000000000000000000000000000000000000205
19618818017216415616417218018819620500000000000000000000
000000000000000000000000

Pgina
141

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000000000202
19418617816916115316116917818619420200000000000000000000
000000000000000000000000
0000000000000000000000000000000000000000000207199
19118317516715915115916717518319119920700000000000000000
00000000000000000000000000
0000000000000000000000000000000000000000000205197
18918017216415614815616417218018919720500000000000000000
00000000000000000000000000
0000000000000000000000000000000000000000000202194
18617817016215314515316217017818619420200000000000000000
00000000000000000000000000
000000000000000000000000000000000000000000208200
191183175167159151143151159167175183191200208000000000000
000000000000000000000000000000
000000000000000000000000000000000000000000205197
189181173164156148140148156164173181189197205000000000000
000000000000000000000000000000
000000000000000000000000000000000000000000202194
186178170162154146137146154162170178186194202000000000000
000000000000000000000000000000
00000000000000000000000000000000000000000208200192
1841751671591511431351431511591671751841922002080000000000
0000000000000000000000000000000
00000000000000000000000000000000000000000205197189
1811731651571481401321401481571651731811891972050000000000
0000000000000000000000000000000

Pgina
142

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000000203195186
1781701621541461381301381461541621701781861952030000000000
0000000000000000000000000000000
0000000000000000000000000000000000000000208200192
18417616815915114313512713514315115916817618419220020800000
00000000000000000000000000000000000
0000000000000000000000000000000000000000205197189
18117316515714914113212413214114915716517318118919720500000
00000000000000000000000000000000000
0000000000000000000000000000000000000000203195187
17917016215414613813012213013814615416217017918719520300000
00000000000000000000000000000000000
000000000000000000000000000000000000000208200192
184176168160152143135127119127135143152160168176184192200208
000000000000000000000000000000000000000
000000000000000000000000000000000000000206198189
181173165157149141133125116125133141149157165173181189198206
000000000000000000000000000000000000000
000000000000000000000000000000000000000203195187
179171163154146138130122114122130138146154163171179187195203
000000000000000000000000000000000000000
000000000000000000000000000000000000000200192184
176168160152144136127119111119127136144152160168176184192200
000000000000000000000000000000000000000
00000000000000000000000000000000000000206198190182
174165157149141133125117109117125133141149157165174182190198
20600000000000000000000000000000000000000

Pgina
143

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000000203195187179
171163155147138130122114106114122130138147155163171179187195
20300000000000000000000000000000000000000
00000000000000000000000000000000000000201193184176
168160152144136128120111103111120128136144152160168176184193
20100000000000000000000000000000000000000
0000000000000000000000000000000000000206198190182
174166158149141133125117109101109117125133141149158166174182
1901982060000000000000000000000000000000000000
0000000000000000000000000000000000000204195187179
17116315514713913112211410698106114122131139147155163171179
1871952040000000000000000000000000000000000000

0000000000000000000000000000000000000201193185177
16916015214413612812011210495104112120128136144152160169177
1851932010000000000000000000000000000000000000

000000000000000000000000000000000000206198190182174
16615815014213312511710910193101109117125133142150158166174
182190198206000000000000000000000000000000000000
000000000000000000000000000000000000204196188179171
163155147139131123115106989098106115123131139147155163171179
188196204000000000000000000000000000000000000
000000000000000000000000000000000000201193185177169
161153144136128120112104968896104112120128136144153161169177
185193201000000000000000000000000000000000000

Pgina
144

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000207199190182174
166158150142134126117109101938593101109117126134142150158166
17418219019920700000000000000000000000000000000000
00000000000000000000000000000000000204196188180172
1631551471391311231151079990829099107115123131139147155163
17218018819620400000000000000000000000000000000000
00000000000000000000000000000000000201193185177169
1611531451371281201121049688808896104112120128137145153161
16917718519320100000000000000000000000000000000000
0000000000000000000000000000000000207199191183174166
1581501421341261181101019385778593101110118126134142150158
1661741831911992070000000000000000000000000000000000
0000000000000000000000000000000000204196188180172164
15614813913112311510799918374839199107115123131139148156164
1721801881962040000000000000000000000000000000000
0000000000000000000000000000000000202194185177169161
15314513712912111210496888072808896104112121129137145153161
1691771851942020000000000000000000000000000000000
000000000000000000000000000000000207199191183175167
15815014213412611811010294857769778594102110118126134142150
1581671751831911992070000000000000000000000000000000
00
000000000000000000000000000000000205196188180172164
156148140132123115107999183756775839199107115123132140148156
164172180188196205000000000000000000000000000000000

Pgina
145

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000202194186178169161
153145137129121113105968880726472808896105113121129137145153
161169178186194202000000000000000000000000000000000
00000000000000000000000000000000207199191183175167
159151143134126118110102948678696169788694102110118126134143
15115916717518319119920700000000000000000000000000000
000
00000000000000000000000000000000205197189180172164
1561481401321241161079991837567596775839199107116124132140
14815616417218018919720500000000000000000000000000000
000
00000000000000000000000000000000202194186178170162
1531451371291211131059789807264566472808997105113121129137
14515316217017818619420200000000000000000000000000000
000
0000000000000000000000000000000208200191183175167159
1511431351271181101029486787062536270788694102110118127135
143151159167175183191200208000000000000000000000000000
0000
0000000000000000000000000000000205197189181173164156
1481401321241161081009183756759515967758391100108116124132
140148156164173181189197205000000000000000000000000000
0000
0000000000000000000000000000000214194186178170162154
14613712912111310597898173645648566473818997105113121129137
14615416217017818619421400000000000000000000000000000
00

Pgina
146

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

0000000000000000000000000000000239203184175167159151
14313512711911110294867870625446546270788694102111119127135
14315115916717518420323900000000000000000000000000000
00
00000000000000000000000000000000212192173165157148
14013212411610810092847567595143515967758492100108116124132
1401481571651731922120000000000000000000000000000000
0
00000000000000000000000000000000237201182162154146
138130122113105978981736557484048576573818997105113122130
1381461541621822012370000000000000000000000000000000
0
000000000000000000000000000000000210191171151143135
127119111103958678706254463846546270788695103111119127135
143151171191210000000000000000000000000000000000
000000000000000000000000000000000235199180160141132
124116108100928476685951433543515968768492100108116124132
141160180199235000000000000000000000000000000000
0000000000000000000000000000000000208189169149130122
1141069789817365574941324149576573818997106114122130149169
1892080000000000000000000000000000000000
0000000000000000000000000000000000217197178158139119
1111039587797062544638303846546270798795103111119139158178
1972170000000000000000000000000000000000
0000000000000000000000000000000000242206187167148128
1081009284766860524335273543526068768492100108128148167187
2062420000000000000000000000000000000000

Pgina
147

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

00000000000000000000000000000000000215196176156137
11798908173655749413325334149576573819098117137156176196
21500000000000000000000000000000000000
00000000000000000000000000000000000240204185165146
1261068779716354463830223038465463717987106126146165185204
24000000000000000000000000000000000000
000000000000000000000000000000000000213194174155135
1159676686052443627192736445260687696115135155174194213000
000000000000000000000000000000000
000000000000000000000000000000000000238203183163144
1241058565574941332517253341495765851051241441631832032380
00000000000000000000000000000000000
0000000000000000000000000000000000000211192172153
1331139474554738302214223038475574941131331531721922110000
000000000000000000000000000000000
0000000000000000000000000000000000000236201181161
1421221038364443628201120283644648310312214216118120123600
00000000000000000000000000000000000
00000000000000000000000000000000000000210190170151
131112927253332517917253353729211213115117019021000000000
000000000000000000000000000000
00000000000000000000000000000000000000235199179160
140120101816242221461422426281101120140160179199235000000
00000000000000000000000000000000
000000000000000000000000000000000000000208188168
149129110907151311241231517190110129149168188208000000000
000000000000000000000000000000

Pgina
148

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000000000216197177
158138119997960402112140607999119138158177197216000000000
000000000000000000000000000000
000000000000000000000000000000000000000242222202
1831631441241048565463846658510412414416318320222224200000
0000000000000000000000000000000000
00000000000000000000000000000000000000000227208188
16914913011090827482901101301491691882082270000000000000
0000000000000000000000000000
000000000000000000000000000000000000000000233213
194174155135127119111119127135155174194213233000000000000
000000000000000000000000000000
0000000000000000000000000000000000000000000238219
19918017216315514715516317218019921923800000000000000000
00000000000000000000000000
000000000000000000000000000000000000000000000224
216208200192184192200208216224000000000000000000000000
000000000000000000000
000000000000000000000000000000000000000000000000
237228220228237000000000000000000000000000000000000
000000000000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000

Pgina
149

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000

Pgina
150

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000
000000000000000000000000000000000000000000000000
000000000000000000000000000000000000000000000000
00000

9.7 Guadeestilodeprogramacin
Breveresumendelosprincipalespuntosdelaguadeprogramacin.

Pgina
151

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Variablesglobales:sepresentansiempreconcaracteresalfanumricos,perosiempre
ha de empezar con una letra minscula y si est compuesta por dos palabras, la
segundatendrqueempezarconmayscula.
tipoejemploVariable;
Variables auxiliares: se representan tambin con caracteres alfanumricos y siempre
comenzar por minscula, pero si est formada por dos palabras, tendr que estas
separadalaprimeradelasegundapalabraporelsmbolo_.
tipovar_auxiliar;
Funciones:serepresentanconcaracteresalfanumricosysiemprecomenzarporuna
letra en mayscula y en caso de contener varias palabras, todas empezaran siempre
pormayscula.Losparmetrosestarnescritosenminsculas.
TipoFuncionUno(intparametro);
Clases: las clases estarn formadas por nombres que la identifiquen y tanto si est
formada por una o varias palabras, estas tendrn que empezar con una letra
mayscula.
ClaseUno
Todaslasclaseshandeestardefinidasenunfichero.hquecontendrlascabeceras
eimplementadasenunfichero.c.
Comentarios:loscomentariosenelcdigoestarndelimitadosporlossmbolos/*al
principiodelcomentarioy*/alfinaldelmismo.
/*estoesuncomentario*/

9.8 Sandrila
LaherramientaSandrila(PaulHerbersSandrilaLtds.f.)sehautilizadoparacrearlos
diagramasenLenguajeSDLatravsdelMicrosoftVisioycomprobarsintcticamentesi
eldiagramaeracorrecto.

Pgina
152

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Paramsinformacinvisitarlaweboficial:
http://www.sdl.sandrila.co.uk/

9.9 ReferenciatcnicaymanualFirelib
Sepuedeencontrarlainformacincompletadelalibreraelsiguienteweboficial:
http://www.fire.org/downloads/fireLib/1.0.4/firelib.pdf

Pgina
153

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

10 GLOSARIO
Autmata celular: Es un modelo matemtico que modela un sistema dinmico que
evolucionaenpasosdiscretos.
Behave:Modelomatemticoquecalculaelcomportamientodelfuegoapartirdeunos
modelosdecombustibles.
Combustible:Cualquiertipodesubstanciaqueescapazdeliberarenergacuandose
quemaycambiartransformarluegosuestructuraqumica.
Datosraster:Esunamatrizdeceldasenunreadeterminada.
Datos vectoriales:Representan la informacin mediante vectores. Puede representar
puntos,lneaspolgonos.
Fuego:Procesoexotrmicodeoxidacinviolentadeunamateriadecombustiblecon
eldesprendimientodellamas,calorygases.
Idrisi32:Esunsistemadeinformacingeogrfica.
Propagacin del fuego: Comportamiento que sigue el fuego a lo largo de una
superficie.
Sandrila:SoftwareparalacreacindediagramasSDLconMicrosoftOfficeVisio.
SDK: Software Develpment Kit, es un kit de desarrollo de software proporcionado
normalmenteporelcreadordelsoftware,queayudaaldesarrollodeaplicaciones.
SDL:Lenguajeparaformalizarmodelosdesimulacin.
SDLPS: Software para la ejecucin de simulaciones distribuidas a partir de modelos
formalizadosenlenguajeSDL.
SIG: Sistema de informacin geogrfica, es una coleccin de hardware, software y
datosgeogrficos.
Simulacinparalela:Eslaejecucindeunasimulacinconprocesosrepartidosenuna
mismacomputadora,demaneraquecompartenmemoria.

Pgina
154

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Simulacin discreta: Se centra en los eventos, la simulacin consiste en seguir los


cambiosdeestadodelsistemaenpasosdetiempodiscretos.
Simulacin distribuida: Es la ejecucin de una simulacin con procesos repartidos en
diversascomputadoras,demaneraquenohaycomparticindedatos,nidememoria
entreellas.
Vrml:VirtualRealityModelingLanguage,esunformatodearchivenormalizadoparala
representacindegrficosentresdimensiones.

Pgina
155

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

11 NDICEDEFIGURAS
Figura1:EntradadedatosenBehavePlus.....................................................................17
Figura2:SalidadeBehavePlus,comparativade4modelosdecombustible................17
Figura3:PantalladesimulacinenFarsite....................................................................18
Figura4:EntadadedatosenNexus...............................................................................19
Figura5:GrficodecombustibleenFofem...................................................................20
Figura6:Bloque..............................................................................................................23
Figura7:Proceso............................................................................................................23
Figura8:Canal................................................................................................................23
Figura9:Seal................................................................................................................23
Figura10:Declaracin....................................................................................................23
Figura11:Procedimiento...............................................................................................23
Figura12:Comentario....................................................................................................23
Figura13:Estado............................................................................................................23
Figura14:Eventodeentrada.........................................................................................23
Figura15:Eventodesalida.............................................................................................23
Figura16:Tarea..............................................................................................................23
Figura17:Lneadeflujo.................................................................................................24
Figura18:Decisin.........................................................................................................24
Figura19:Estadoinicial..................................................................................................24
Figura20:SoftwareSDLPS..............................................................................................27
Figura21:VecindaddeMoore.......................................................................................31
Figura22:ExtensinCellDevs.......................................................................................34
Figura23:ExtensinM:NCAk.........................................................................................35
Figura24:DiagramaSistemaversin1..........................................................................37
Figura25:Diagramadelsistemaversinfinal................................................................38
Figura26:DiagramadelMNCA_Fuego..........................................................................41
Figura27:ProcedimientoVecinity.................................................................................41
Figura28:Obtencinceldaactual..................................................................................43
Figura29:Obtencininformacinceldaactual.............................................................44
Figura30:Obtencininformacinceldavecina.............................................................44

Pgina
156

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura31:ProcedimientoVecinity.................................................................................45
Figura32:ProcedimientoNucleus.................................................................................46
Figura33:Obtencininformacinceldaactual.............................................................47
Figura34:Salvarinformacinceldaactual....................................................................47
Figura35:Salvarinformacinceldavecina....................................................................47
Figura36:ProcedimientoNucleus.................................................................................48
Figura37:Diagramadebloques.....................................................................................49
Figura38:Diagramadeestados.....................................................................................51
Figura39:Enviandolasealarder.................................................................................54
Figura40:Recibiendolasealarder..............................................................................54
Figura41:Obteniendolapropagacin...........................................................................55
Figura42:Salvandolosresultados.................................................................................55
Figura43:Enviandolasealpropagar...........................................................................55
Figura44:Recibiendolasealpropagar........................................................................56
Figura45:Diagramadeprocesos,parte1......................................................................57
Figura46:Recibiendosealarder..................................................................................58
Figura47:Recibiendolasealdeextinguir....................................................................58
Figura48:Recibiendolasealdepropagar...................................................................59
Figura49:Calculandolapropagacin............................................................................59
Figura50:Salvandolosresultadosobtenidos................................................................60
Figura51:Tomandoladecisinsisepropagaelfuego.................................................60
Figura52:Enviandosealdeextinguir..........................................................................60
Figura53:Enviandolasealdepropagar......................................................................61
Figura54:Recibiendolasealdeactualizardatos.........................................................61
Figura55:Calculandolapropagacin............................................................................62
Figura56:Enviandolasealdepropagar......................................................................62
Figura57:Diagramadeprocesos,parte2......................................................................63
Figura58:Diagramadeprocesos,parte3......................................................................64
Figura59:FuncinmncaGetCurrCell..............................................................................67
Figura60:FuncinmncaGetGetValue............................................................................67
Figura61:FuncinmncaSetCellValue............................................................................67

Pgina
157

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Figura62:Diagramadeclases........................................................................................68
Figura63:ClaseFireSimulation......................................................................................68
Figura64:LeydeAmdahl...............................................................................................82
Figura65:ResultadoBehave..........................................................................................86
Figura66:Resultadosimuladornodistribuido..............................................................86
Figura67:Fechasplanificacin.......................................................................................91
Figura68:DiagramadeGantt........................................................................................92

Pgina
158

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

12 BIBLIOGRAFIA
Bevins,CollinD."fireLibUserManualandTechnicalReference."
Bitmanagement,Interactiveweb3dgraphics.http://www.bitmanagement.com/.
Casas,PauFonsecaI.Formalitzacidemodelsdesimulaci.
Casas, Pau Fonseca I. "SDL, a graphical language useful to describe social simulation
models."
FireBehaviorandFireDangerSoftware.http://firemodels.fire.org/.
IEC.SDLTutorial.http://www.iec.org/online/tutorials/sdl/topic04.html(accessedMay
2010).
InternationalTelecommunicationUnion.http://www.itu.int/.
International,SocietyforModeling&Simulation.SCS.http://www.scs.org/.
J.M.Llavera,E.HerradayA.Oliv.Arquitecturadecomputadors(AC)Teoria1.
JavierAmeghino,GabrielWainer."ModelandosistemascomplejosconCellDevs."
Pau Fonseca, Josep Casanovas y Jordi Montero. "A celular autmata and intelligent
agentsusetomodelnaturaldisasterswithdiscretesimulation."
PaulHerbersSandrilaLtd.http://www.sandrila.co.uk/.
PublicDomainSoftwarefortheWindlandFireCommunity.http://www.fire.org/.
Reed,Rick."SDL2000forNewMillenniumSystems."
Sastre,DavidEsteban.IntroduccinaSDL.
Telecommunication standardization sector of ITU. "Specification and Description
Language (SDL)." Series Z: Languages and general software aspects for
telecommunication systems. International Telecommunication Union. 1999.
http://www.itu.int/ITUT/studygroups/com17/languages/index.html (accessed April
2008).

Pgina
159

DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller

Wainer,GabrielA."Introduccinalasimulacindeeventosdiscretos."
Wolfram's,Stephen.Anewkindofscience.
Z.100, UITT. "Tcnicas de descripcin formal Lenguaje de especificacin y
descripcin."

Pgina
160

También podría gustarte