Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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
Pgina
15
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
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
Figura3:PantalladesimulacinenFarsite
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
Aniveldeusuario,esmsfcilentendercmofuncionaelmodelo,yaquese
presentadeformagrficaendiagramasSDL,noescondicinnecesariaqueel
usuarioseaunexpertoenincendios.
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
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
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
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
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
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
Pgina
42
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
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)
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
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)
mncaGetCurrentCell(tmpCell);
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
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:
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
Figura40:Recibiendolasealarder
Pgina
54
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
Figura41:Obteniendolapropagacin
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
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
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
Figura56:Enviandolasealdepropagar
Eldiagramacompletoquedaracomoseveacontinuacin.
Pgina
62
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
process
Pgina-1 (3)
ProcessCelda
Ardiendo
Arder
Extinguir
Ardiendo
Quemado
Propagar
ActualizarDatos
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);
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
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
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
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
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:
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:
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
Pgina
100
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
Pgina
101
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
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
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
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
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
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
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
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
Pgina
126
DistribucindeunsimuladordeincendiosforestalesatravsdeSDL
Fco.JavierBerceroAntiller
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
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