Estrutura de Arquivos e Dados de entrada¶
Inicialmente, o formato utilizado para os dados de entrada é baseado em arquivos CSV, por ser um formato usualmente utilizado para fornecimento de dados e facilmente editado em diversas ferramentas existentes, como o Google Sheets ou o Microsoft Excel®.
Arquivos formato CSV¶
O arquivo de entradas das Libs possuem características comuns ao formato CSV. Esses arquivos seguem as seguintes premissas:
Linhas que começam com “&” são consideradas comentários e não são lidas pelo modelo.
Linhas em branco são desconsideradas
Cada linha representa um dado com vários campos associados.
Os campos são separados pelo caractere separador “;”.
Cada campo contêm um único dado.
O primeiro campo de cada linha é SEMPRE um identificador do dado que determina também quantos e quais dados vem nos campos subsequentes.
Arquivo Índice¶
O arquivo índice contêm uma lista de funcionalidades a serem consideradas através do ambiente LIBs, através das seguintes informações: nome da funcionalidade a ser ativdada; descrição da funcionalidade (a critério do usuário); nome do arquivo onde se encontram os dados relacionados à funcionalidade.
Em cada linha do arquivo os campos são os seguintes:
Campos |
Obrigatorio |
Nulável |
Descrição |
---|---|---|---|
IDENTIFICADOR-FUNCIONALIDADE |
Sim |
Não |
Identificador referente a funcionalidade que deve ser considerada |
Descrição |
Não |
Não |
Descrição da funcionalidade, do arquivo ou qualquer outra informação relevante para o usuário. Esse campo não é utilizado. |
Arquivo com os dados para determinada funcionalidade |
Sim |
Não |
Caminho para o arquivo com os dados. Pode ser fornecido de forma absoluta ou relativo ao diretório do arquivo de índices. |
Campos |
Tipo |
Unidade |
Mínimo |
Máximo |
Padrão |
---|---|---|---|---|---|
IDENTIFICADOR-FUNCIONALIDADE |
Texto |
||||
Descrição |
Texto |
||||
Arquivo com os dados para determinada funcionalidade |
Texto |
Exemplo de utilização:
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente à funcionalidade que deve ser considerada
& Descricao: Descrição com para o campo 2
& Caminho: Caminho para o arquivo com os dados.
& Pode ser fornecido de forma absoluta ou relativo ao diretório do arquivo de índices.
&*****************;**********;****************************************
&ID ;Descricao ;Caminho
&- ;- ;-
&SSSSSSSSSSSSSSSSS;SSSSSSSSSSSSSSSSSSSSSSSS;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
EOLICA-CADASTRO ;Modelagem Usinas Eolicas;dados_eolicas.csv
ID-FUNCIONALIDADE2;Descrição2 ;dados_funcionalidade_2.csv
ID-FUNCIONALIDADE3;Descrição3 ;/caminho/absoluto/dados_funcionalidade_3.csv
Observações:
Diversas funcionalidades podem conter seus dados em um único arquivo, bastando copiar o nome do arquivo para estas funcionalidades. De qualquer forma, recomenda-se manter os dados em arquivos separados para melhor organização e reaproveitamento de dados, e também para manter uma estrutura de colunas única para cada arquivo CSV.
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente a funcionalidade que deve ser considerada
& Descricao: Descrição com para o campo 2
& Caminho: Caminho para o arquivo com os dados.
& Pode ser fornecido de forma absoluta ou relativo ao diretório do arquivo de índices.
&*****************;**********;****************************************
&ID ;Descricao ;Caminho
&- ;- ;-
&SSSSSSSSSSSSSSSSS;SSSSSSSSSS;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
ID-FUNCIONALIDADE1;Descrição1;todos_os_dados.csv
ID-FUNCIONALIDADE2; ;todos_os_dados.csv
Arquivos de dados¶
Cada item no arquivo de índices aponta para um outro arquivo contendo os dados referentes à funcionalidade associada. Esses arquivos de dados terão as mesmas premissas descritas para o arquivo de índices, com exceção do número de colunas de dados, que pode variar de acordo com cada dado.
Dessa forma imagine as funcionalidades de identificador “FUNCIONALIDADE-UM” e uma outra funcionalidade com identificador “FUNCIONALIDADE-DOIS”. FUNCIONALIDADE-UM possui os dados “DADO-UM-FUNCIONALIDADE-UM” e “DADO-DOIS-FUNCIONALIDADE-UM”, e a FUNCIONALIDADE-DOIS posui os dados “DADO-UM-FUNCIONALIDADE-DOIS” e “DADO-DOIS-FUNCIONALIDADE-DOIS”.
Assim, para a situação acima um arquivo de índices possível seria:
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente a funcionalidade que deve ser considerada
& Descricao: Descrição com para o campo 2
& Caminho: Caminho para o arquivo com os dados.
& Pode ser fornecido de forma absoluta ou relativo ao diretório do arquivo de índices.
&******************;**********;****************************************
&ID ;Descricao ;Caminho
&- ;- ;-
&SSSSSSSSSSSSSSSSSS;SSSSSSSSSS;SSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSSS
FUNCIONALIDADE-UM ;Descrição1;dados_funcionalidade_um.csv
FUNCIONALIDADE-DOIS;Descrição2;dados_funcionalidade_dois.csv
Seus respectivos arquivos de dados seriam:
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente a funcionalidade que deve ser considerada
& Campo1: Descrição para o campo 1
& Campo2: Descrição para o campo 2
& Campo3: Descrição para o campo 3
&**************************;**********;**************;*************************
&ID ;Campo1 ;Campo2 ;Campo3
&- ;- ;- ;-
&SSSSSSSSSSSSSSSSSSSSSSSSSS;IIIIIIIIII;FFFFFFFFFFFFFF;SSSSSSSSSSSSSSSSSSSSSSSSS
DADO-UM-FUNCIONALIDADE-UM ; 1; 1.0;Nome_Exemplo1
DADO-UM-FUNCIONALIDADE-UM ; 2; 2.0;Nome_Exemplo2
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente a funcionalidade que deve ser considerada
& OutroCampo1: Descrição para o outro campo 1
& OutroCampo2: Descrição para o outro campo 2
&**************************;***********;***********
&ID ;OutroCampo1;OutroCampo2
&- ;- ;-
&SSSSSSSSSSSSSSSSSSSSSSSSSS;IIIIIIIIIII;FFFFFFFFFFFF
DADO-UM-FUNCIONALIDADE-DOIS; 3; 3.0
DADO-UM-FUNCIONALIDADE-DOIS; 4; 4.0
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente a funcionalidade que deve ser considerada
& Campo1: Descrição para o campo 1
&**************************;**********
&ID ;Campo1
&- ;-
&SSSSSSSSSSSSSSSSSSSSSSSSSS;IIIIIIIIII
DADO-DOIS-FUNCIONALIDADE-UM; 1
DADO-DOIS-FUNCIONALIDADE-UM; 2
&**************************************************
& Descrição colunas:
&**************************************************
& ID: Identificador referente a funcionalidade que deve ser considerada
& OutroCampo1: Descrição para o outro campo 1
& OutroCampo2: Descrição para o outro campo 2
&**************************;***********;**************
&ID ;OutroCampo1;OutroCampo2
&- ;- ;-
&SSSSSSSSSSSSSSSSSSSSSSSSSS;IIIIIIIIIII;FFFFFFFFFFFFFF
DADO-DOIS-FUNCIONALIDADE-DOIS; 3; 3.0
DADO-DOIS-FUNCIONALIDADE-DOIS; 4; 4.0
Linhas descritivas e Réguas identificadoras dos campos¶
Nos exemplos acima, você deve ter percebido que há diversos registros iniciados com o caractere “&”. Como explicado anteriormente, estes registros não são lidos pelos modelos, portanto são opcionais. Ressaltamos, porém, que tais registros podem ser bastante úteis para descrever as informações que constam no arquivo e o conteúdo dos campos.
Em particular, uma “régua identificadora” do registro pode ser utilizada pelo usuário para indicar o tipo de dado a ser fornecido em cada campo, seguindo a convenção a seguir:
“S”: texto alfanumérico (string);
“I”: valor inteiro;
“F”: valor real (float)).
Ressalta-se que o alinhamento dos campos não é necessário, mas pode ser utilizado para os usuários que utilizam os arquivos texto para edição ou visualização. Por exemplo, se os registros mostrados anteriormente fossem escritos da forma a seguir, sem réguas e sem espaços entre os caracteres “;”:
DADO-UM-FUNCIONALIDADE-UM;1;1.0;Nome_Exemplo1
DADO-UM-FUNCIONALIDADE-UM;2;2.0;Nome_Exemplo2
DADO-DOIS-FUNCIONALIDADE-DOIS;3;3.0
DADO-DOIS-FUNCIONALIDADE-DOIS;4;4.0
os modelos iriam ler as informações da mesma forma que o exemplo “arquivo de dados para FUNCIONALIDADE-DOIS”. Em particular, esta maneira de informar os dados (sem espaços entre os campos) é até mais adequada para abertura do arquivo em editores de planilhas, pois evitam que surjam caracteres em branco no conteúdo das células