close Warning: Can't synchronize with repository "(default)" (/var/svn/tolp does not appear to be a Subversion repository.). Look in the Trac log for more information.

Opened 13 years ago

Closed 13 years ago

#1540 closed defect (fixed)

Warning al guardar con OIS por un TimeSet no visible globalmente

Reported by: imendez Owned by: Víctor de Buen Remiro
Priority: normal Milestone: Mantainance
Component: OIS Version: 3.1
Severity: normal Keywords:
Cc: atorre@…, pgea@…

Description

Hola, al ejecutar el siguiente código:

Serie FunWarn(TimeSet fdo)
{
  CalInd(C, fdo)
};
Serie SrWarn = FunWarn(Diario);
Real Ois.Store([[ SrWarn ]], "C:/warn.oza");

Me aparece el siguiente Warning:

Warning: [2573] OIS: 
El TimeSet no acotado 
Diario = fdo;
 depende de símbolos no visibles globalmente. Sólo los datos almacenados en la cache en [y2005m02d07,y2014m11d15] estarán accesibles cuando sea cargado

Entiendo que se debe a que el fechado fdo, argumento de la función FunWarn, no es un objeto global.

Sin embargo, si ejecuto las dos siguientes alternativas no aparece el Warning:

Serie FunWarn2(TimeSet fdo)
{
  TimeSet fdoAcot = fdo*In(DefFirst, DefLast);
  CalInd(C, fdoAcot)
};
Serie SrWarn2 = FunWarn2(Diario);
Real Ois.Store([[ SrWarn2 ]], "C:/warn2.oza");

Serie FunWarn3(Set fdoRef)
{
  CalInd(C, fdoRef[1])
};
Serie SrWarn3 = FunWarn3([[Diario]]);
Real Ois.Store([[ SrWarn3 ]], "C:/warn3.oza");

Aparte de preguntar si existen otras alternativas para omitir el warning -excluyendo el Show(0, "WARNING")- y cuál es la más recomendada, me gustaría saber si el hecho de acotar un fechado para guardarlo con OIS es ineficiente desde el punto de vista del consumo de memoria.

En realidad el Warning que me da es por una función de la StdLib, IntervalTrend01. Al igual que esa, hay otras muchas funciones que presentan el mismo "problema" al guardar con OIS un objeto creado con ellas.

Un saludo.

N.B.: Al margen de lo anterior, el intervalo en el que OIS guarda el TimeSet en caché, [y2005m02d07,y2014m11d15], ¿de dónde sale?

Change History (3)

comment:1 Changed 13 years ago by Víctor de Buen Remiro

El OIS es una foto que solo puede guardar objetos finitos. Los fechados infinitos se intentan guardar como una expresión TOL pero si depende de cosas locales difícilmente podrá ser reconstruida.

Tenga o no expresión, todo conjunto temporal tiene asociada una caché acumulativa con los datos que ha necesitado calcular en algún momento, para no tener que repetir cálculos de forma innecesaria.

Esta caché se guarda en OIS para que en caso de no poder reproducirse de forma virtual, que al menos tenga los datos de caché, y ya de paso no necesita calcularse otra vez en ese intervalo.

En FunWarn2 no da problemas porque ya es acotado el fechado y en FunWarn3 tampoco porque no es local.

Mi consejo es usar siempre fechados globales.

comment:2 Changed 13 years ago by Víctor de Buen Remiro

Tickets relacionados: #1451, #1470, #1473

comment:3 Changed 13 years ago by Víctor de Buen Remiro

Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.