Introdução
A documentação a seguir descreve a implementação de um conjunto de classes que facilitam a interação com APIs de PCDs (Plataforma de Coleta de Dados) e Sondagens (também considerada uma PCD). Essas classes foram projetadas para simplificar a recuperação, processamento e exportação de dados, permitindo que os usuários acessem informações relevantes de forma eficiente. Cada classe possui métodos específicos que atendem a diferentes necessidades, desde a obtenção de dados até a conversão e exportação para formatos amplamente utilizados, como JSON, CSV e DataFrame.
Classes e Métodos¶
GroupsPcdsClient¶
O GroupsPcdsClient é uma classe para interagir com a API de PCDs. Esta documentação descreve os métodos disponíveis e como utilizá-los.
Métodos¶
to_df(data)¶
Descrição:
Converte os dados recebidos em um DataFrame do Pandas.
Parâmetros:
data(list of dict): Dados a serem convertidos. Inclui os dados que vem das requisições dentro de GroupsPcdsClient
Retorno:
DataFrame do Pandas.
to_csv(data, filename)¶
Descrição:
Converte os dados recebidos em um DataFrame e salva como um arquivo CSV.
Parâmetros:
data(list of dict): Dados a serem convertidos.filename(str): Nome do arquivo CSV a ser salvo.
get_all()¶
Descrição:
Recupera todos os PCDs disponíveis.
Retorno:
list: Dados dos PCDs ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 30847,
'cidade': 'Fortuna',
'estado': 'MA',
'latitude': '-5.800558',
'longitude': '-44.056711',
'altitude': 117.0,
'estacao': 'Fortuna',
'id': 142726,
'ativo': True,
'proprietario': 'ufma'},
{'numero': 30848,
'cidade': 'Mirador',
'estado': 'MA',
'latitude': '-6.658536',
'longitude': '-45.141333',
'altitude': 381.0,
'estacao': 'Mirador',
'id': 142728,
'ativo': True,
'proprietario': 'ufma'},
{'numero': 30861,
'cidade': 'TESTE-H1-ANA',
'estado': 'DF',
'altitude': 1048.0,
'id': 2246,
...
'estacao': 'Aruana',
'id': 3240,
'ativo': True,
'proprietario': 'lim'},
...]get_all_resumed()¶
Descrição:
Recupera uma lista resumida de todos os PCDs, incluindo apenas os campos principais e alguns campos adicionais.
Retorno:
list: Dados resumidos dos PCDs ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'id': 142726,
'numero': 30847,
'ativo': True,
'proprietario': 'Desconhecido',
'latitude': '-5.800558',
'longitude': '-44.056711',
'estado': 'MA',
'cidade': 'Fortuna'},
{'id': 142728,
'numero': 30848,
'ativo': True,
'proprietario': 'Desconhecido',
'latitude': '-6.658536',
'longitude': '-45.141333',
'estado': 'MA',
'cidade': 'Mirador'},
{'id': 2246,
'numero': 30861,
'ativo': True,
'proprietario': 'Desconhecido',
'estado': 'DF',
'cidade': 'TESTE-H1-ANA'},
{'id': 2247,
'numero': 30862,
'ativo': True,
...
'latitude': '-14.817',
'longitude': '-51.167',
'estado': 'GO',
'cidade': 'Aruana'},
...]get_complete_pcds()¶
Descrição:
Recupera todas as PCDs completas, ou seja, aqueles que possuem todos os campos principais.
Retorno:
list: Todas PCDs completas ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 30847,
'cidade': 'Fortuna',
'estado': 'MA',
'latitude': '-5.800558',
'longitude': '-44.056711',
'altitude': 117.0,
'estacao': 'Fortuna',
'id': 142726,
'ativo': True,
'proprietario': 'ufma'},
{'numero': 30848,
'cidade': 'Mirador',
'estado': 'MA',
'latitude': '-6.658536',
'longitude': '-45.141333',
'altitude': 381.0,
'estacao': 'Mirador',
'id': 142728,
'ativo': True,
'proprietario': 'ufma'},
{'numero': 30867,
'cidade': 'Mateiros',
'estado': 'TO',
'latitude': '-10.543',
'longitude': '-46.755',
...
'estacao': 'PESM Caraguatatuba Hidro',
'id': 3387,
'ativo': True,
'proprietario': 'lim'},
...]get_incomplete_pcds()¶
Descrição:
Recupera todas as PCDs incompletas, ou seja, aqueles que não possuem todos os campos principais.
Retorno:
list: Todas as PCDs incompletas ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 30861,
'cidade': 'TESTE-H1-ANA',
'estado': 'DF',
'altitude': 1048.0,
'id': 2246,
'ativo': True,
'proprietario': 'lim'},
{'numero': 30862,
'cidade': 'TESTE-H1-ANA',
'estado': 'DF',
'altitude': 1048.0,
'id': 2247,
'ativo': True,
'proprietario': 'lim'},
{'numero': 30864,
'cidade': 'TEST-H6-SIVAM',
'estado': 'DF',
'altitude': 1048.0,
'id': 2248,
'ativo': True,
'proprietario': 'lim'},
{'numero': 30865,
'cidade': 'TESTE-H6-SIVAM',
'estado': 'DF',
'altitude': 1048.0,
...
'altitude': 0.0,
'id': 3162,
'ativo': True,
'proprietario': 'lim'},
]get_pcds_by_owner(owner)¶
Descrição:
Recupera todos os PCDs que pertencem ao proprietário especificado.
Parâmetros:
owner(str): Nome do proprietário.
Retorno:
list: Dados dos PCDs filtrados por proprietário ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 70112,
'cidade': 'Natal',
'estado': 'RN',
'latitude': '-5.835',
'longitude': '-35.204',
'altitude': 10.0,
'estacao': 'Natal Davis',
'id': 141618,
'ativo': True,
'proprietario': 'Lavat'},
{'numero': 70113,
'cidade': 'Maxaranguape',
'estado': 'RN',
'latitude': '-5.487',
'longitude': '-35.257',
'estacao': 'Maxaranguape',
'id': 141295,
'ativo': True,
'proprietario': 'Lavat'},
{'numero': 70114,
'cidade': 'Currais Novos',
'estado': 'RN',
'latitude': '-6.250',
'longitude': '-36.524',
'altitude': 10.0,
...
'altitude': 42,
'estacao': 'Natal GUV',
'ativo': True,
'id': 70123,
'proprietario': 'LAVAT'}]get_pcds_by_state(state)¶
Descrição:
Recupera todos os PCDs que estão localizados no estado especificado.
Parâmetros:
state(str): Sigla do estado.
Retorno:
list: Dados dos PCDs filtrados por estado ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 30979,
'cidade': 'Natal',
'estado': 'RN',
'latitude': '-5.835',
'longitude': '-35.205',
'altitude': 1.0,
'estacao': 'Posicionamento Barco',
'id': 2310,
'ativo': True,
'proprietario': 'lim'},
{'numero': 31044,
'cidade': 'Natal',
'estado': 'RN',
'latitude': '-6.441',
'longitude': '-37.067',
'estacao': 'Samau SAt',
'id': 2330,
'ativo': True,
'proprietario': 'lim'},
{'numero': 31046,
'cidade': 'Natal',
'estado': 'RN',
'latitude': '-5.835',
'longitude': '-35.205',
'altitude': 87.0,
...
'companhiaOrgao': 'INPE-CRN-NATAL',
'departamentoSecao': 'LAVAT',
'id': None,
'ativo': True},
'ativo': True}]get_public_pcds()¶
Descrição:
Recupera todas as PCDs públicos.
Retorno:
list: Dados das PCDs públicas ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 30847,
'habilitado': True,
'dataCadastro': '2023-03-15T11:28:58.545',
'intervaloTempoColeta': 203,
'cidade': 'Fortuna',
'estado': 'MA',
'pais': 'Brasil',
'latitude': '-5.800558',
'longitude': '-44.056711',
'altitude': 117.0,
'estacao': 'Fortuna',
'privado': False,
'proprietario': {'nome': 'ufma',
'quantidadeDiasEnvioDadosDecodificados': 15,
'id': 142725,
'ativo': True},
'id': 142726,
'ativo': True},
{'numero': 30848,
'habilitado': True,
'dataCadastro': '2023-03-15T11:29:45.589',
'intervaloTempoColeta': 203,
'cidade': 'Mirador',
'estado': 'MA',
'pais': 'Brasil',
...
'id': 1015,
'ativo': True},
'id': 3240,
'ativo': True},
...]get_private_pcds()¶
Descrição:
Recupera todas as PCDs privadas.
Retorno:
list: Dados das PCDs privadas ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'numero': 30847,
'habilitado': True,
'dataCadastro': '2023-03-15T11:28:58.545',
'intervaloTempoColeta': 203,
'cidade': 'Fortuna',
'estado': 'MA',
'pais': 'Brasil',
'latitude': '-5.800558',
'longitude': '-44.056711',
'altitude': 117.0,
'estacao': 'Fortuna',
'privado': False,
'proprietario': {'nome': 'ufma',
'quantidadeDiasEnvioDadosDecodificados': 15,
'id': 142725,
'ativo': True},
'id': 142726,
'ativo': True},
{'numero': 30848,
'habilitado': True,
'dataCadastro': '2023-03-15T11:29:45.589',
'intervaloTempoColeta': 203,
'cidade': 'Mirador',
'estado': 'MA',
'pais': 'Brasil',
...
'id': 1015,
'ativo': True},
'id': 3240,
'ativo': True},
...]PcdsApiClient¶
A classe PcdsApiClient é responsável por interagir com a API do Mongo, proporcionando métodos para autenticação, obtenção de dados, processamento e exportação de dados para diferentes formatos.
Métodos¶
to_df(data)¶
Descrição:
Converte os dados fornecidos em um DataFrame do Pandas.
Parâmetros:
data(list): A lista de dados a ser convertida.
Retorno:
DataFrame do Pandas.
to_csv(data, filename)¶
Descrição:
Exporta os dados fornecidos para um arquivo CSV.
Parâmetros:
data(list): A lista de dados a ser exportada.filename(str): O nome do arquivo CSV.
get_pcd(idPCD)¶
Descrição:
Obtém a informação a respeito de uma PCD.
Parâmetros:
idPCD(int): O ID da PCD.
Retorno:
dict: Informações da PCD.
Exemplo de Resposta:
Clique para expandir
{'numero': 70123,
'cidade': 'Natal',
'estado': 'RN',
'latitude': '-5.836867047785668',
'longitude': '-35.20705791138854',
'id': None,
'ativo': True,
'proprietario': 'LAVAT'}get_period_availability(idPCD)¶
Descrição:
Obtém a disponibilidade de período para um determinado PCD.
Parâmetros:
idPCD(int): O ID do PCD.
Retorno:
dict: Dados de disponibilidade de período.
Exemplo de Resposta:
Clique para expandir
{
'data_inicial': '2006-01-25T00:00:00',
'data_final': '2024-08-06T00:00:00'
}get_data(idPCD, data_inicial, data_final)¶
Descrição:
Obtém e processa os dados da PCD para o intervalo de datas especificado.
Parâmetros:
idPCD(int): O ID do PCD.data_inicial(str): A data de início no formato YYYY-MM-DD.data_final(str): A data de término no formato YYYY-MM-DD.
Retorno:
list: Dados processados.
Exemplo de Resposta:
Clique para expandir
[{'Data': '2023-01-01 00:00:00',
'TempOut (°C)': '24.2',
'HiTemp (°C)': '24.2',
'OutHum (%)': '88',
'DewPt (°C)': '22.1',
'WindSpeed (m/s)': '0.4',
'WindDir (deg)': '157.5',
'HiSpeed (m/s)': '1.8',
'HeatIndex (°C)': '26.0',
'Bar (Hg)': '1004.7',
'Rain (mm)': '0.0',
'SolarRad (W/m2)': '0',
'HiSolarRad (W/m2)': '0',
'UVIndex (Numeric)': '0.0',
'ET (mm)': '0.0'},
{'Data': '2023-01-01 00:10:00',
'TempOut (°C)': '24.1',
'HiTemp (°C)': '24.2',
'OutHum (%)': '88',
'DewPt (°C)': '21.9',
'WindSpeed (m/s)': '0.0',
'WindDir (deg)': '',
'HiSpeed (m/s)': '0.0',
'HeatIndex (°C)': '25.9',
'Bar (Hg)': '1004.5',
...
'SolarRad (W/m2)': '0',
'HiSolarRad (W/m2)': '0',
'UVIndex (Numeric)': '0.0',
'ET (mm)': '0.0'},
...]get_pcd_metadata(idPCD)¶
Descrição:
Obtém os metadados de uma PCD.
Parâmetros:
idPCD(int): O ID da PCD.
Retorno:
dict: Metadados da PCD.
Exemplo de Resposta:
Clique para expandir
{'numero': 70122,
'habilitado': True,
'dataCadastro': '2024-05-20T11:41:51.303',
'cidade': 'Natal',
'estado': 'RN',
'pais': 'Brasil',
'latitude': '-5.836667047785668',
'longitude': '-35.20705791138854',
'altitude': 42,
'estacao': 'Natal Solarimetrica',
'privado': False,
'proprietario': {'nome': 'LAVAT',
'responsavel': None,
'companhiaOrgao': 'INPE-CRN-NATAL',
'departamentoSecao': 'LAVAT',
'id': None,
'ativo': True},
'ativo': True}get_metadata_resumed(idPCD)¶
Descrição:
Obtém os metadados resumidos da PCD.
Parâmetros:
idPCD(int): O ID do PCD.
Retorno:
dict: Metadados resumidos da PCD.
Exemplo de Resposta:
Clique para expandir
{'id': 2882,
'numero': 32263,
'ativo': True,
'proprietario': 'lim',
'latitude': '-22.968',
'longitude': '-43.236',
'estado': 'RJ',
'cidade': 'Rio de Janeiro'}get_owner(idPCD)¶
Descrição:
Obtém o proprietário da PCD.
Parâmetros:
idPCD(int): O ID da PCD.
Retorno:
dict: Dados do proprietário da PCD.
Exemplo de Resposta:
Clique para expandir
{'nome': 'lim',
'quantidadeDiasEnvioDadosDecodificados': 15,
'quantidadeDiasEnvioDadosBrutos': 15,
'responsavel': '',
'companhiaOrgao': 'INPE - Laboratorio I',
'departamentoSecao': '',
'logradouro': '',
'cidade': 'Cachoeria Paulista',
'estado': 'SP',
'pais': 'Braisl',
'cep': 'xxx',
'telefone': 'xxx',
'fax': 'xxx',
'email': 'xxx',
'id': 1015,
'ativo': True}is_private(idPCD)¶
Descrição:
Verifica se o PCD é privado.
Parâmetros:
idPCD(int): O ID do PCD.
Retorno:
bool: True se o PCD for privado, caso contrário, False.
Exemplo de Resposta:
Clique para expandir
trueget_sensors(idPCD)¶
Descrição:
Obtém a lista de sensores disponíveis para a PCD.
Parâmetros:
idPCD(int): O ID da PCD.
Retorno:
list: Lista de sensores.
Exemplo de Resposta:
Clique para expandir
[{'id': 10681,
'ativo': True,
'equacao': '+0.1*x +11.3',
'inicioBits': 242,
'nome': 'Bateria',
'quantidadeBits': 5,
'shiftTempo': 0,
'tipoCalibrador': {'name': 'POLINOMIAL', 'id': 1},
'tipoSensor': {'name': 'PADRAO', 'id': 0},
'unidadeEngenharia': 'Volt',
'virtual': False},
{'id': 10682,
'ativo': True,
'equacao': '+100*x',
'inicioBits': 247,
'nome': 'CorrPSol',
'quantidadeBits': 5,
'shiftTempo': 0,
'tipoCalibrador': {'name': 'POLINOMIAL', 'id': 1},
'tipoSensor': {'name': 'PADRAO', 'id': 0},
'unidadeEngenharia': 'Logico',
'virtual': False},
{'id': 10710,
'ativo': True,
'inicioBits': 92,
...
'shiftTempo': 0,
'tipoCalibrador': {'name': 'BRUTO', 'id': 0},
'tipoSensor': {'name': 'PADRAO', 'id': 0},
'unidadeEngenharia': 'm/s',
'virtual': False}]SondagensClient¶
O SondagensClient é uma classe para interagir com a API de sondagens. Esta documentação descreve os métodos disponíveis e como utilizá-los.
Métodos¶
to_df(self, data)¶
Descrição:
Converte os dados recebidos em um DataFrame do Pandas.
Parâmetros:
data(list of dict): Dados a serem convertidos.
Retorno:
DataFrame do Pandas.
to_csv(data, filename)¶
Descrição:
Converte os dados recebidos em um DataFrame e salva como um arquivo CSV.
Parâmetros:
data(list of dict): Dados a serem convertidos.filename(str): Nome do arquivo CSV a ser salvo.
get_all_soundings()¶
Descrição:
Recupera todas as sondagens disponíveis.
Retorno:
dict: Dados das sondagens ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'hora_lancamento': '15:35:22',
'sonda': '66905bcc2a7d527c30bd792e',
'data_lancamento': '2024-07-09'},
{'hora_lancamento': '15:06:36',
'sonda': '668313e3de022bf47e836a35',
'data_lancamento': '2024-06-28'},
{'hora_lancamento': '14:49:41',
'sonda': '667de6a9fe0b5f1a6e6869a3',
'data_lancamento': '2024-06-18'},
{'hora_lancamento': '14:17:24',
'sonda': '667c1f7900ad00763e5caa22',
'data_lancamento': '2024-06-07'},
{'hora_lancamento': '14:36:07',
'sonda': '6671b4fa35971537a667f8e8',
'data_lancamento': '2024-05-29'},
{'hora_lancamento': '14:58:03',
'sonda': '664d31e75d7b76a028c777bf',
'data_lancamento': '2024-05-17'},
{'hora_lancamento': '14:55:28',
'sonda': '664d31da5d7b76a028c777bd',
'data_lancamento': '2024-05-02'},
{'hora_lancamento': '14:50:38',
'sonda': '664d31cb5d7b76a028c777bb',
'data_lancamento': '2024-04-15'},
{'hora_lancamento': '14:48:05',
...
'sonda': '664b8a6750bd0dc1b1c81e20',
'data_lancamento': '2006-02-17'},
{'hora_lancamento': '14:10:09',
'sonda': '664b8a7250bd0dc1b1c81e22',
'data_lancamento': '2006-01-18'}]get_sounding(data_lancamento='YYYY-MM-DD')¶
Descrição:
Recupera uma sondagem específica com base no ID ou data de lançamento.
Parâmetros:
data_lancamento(str): Data de lançamento da sondagem no formato ‘YYYY-MM-DD’.
Retorno:
list: Dados da sondagem ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
[{'Time (sec)': 0,
'Press (hPa)': 1005.3,
'GeopAlt (km)': 42.0,
'Temp (C)': 27.9055,
'RH (%)': 65.805,
'O3_mPa (mPa)': 24.2839,
'O3_ppmv (ppmv)': 0.0242,
'O3_DU (DU)': '',
'Wind_Dir (deg)': 143.466,
'Wind_Spd (m/s)': 5.4,
'TPump (C)': 30.7,
'O3CellI (uA)': 0.65041,
'GPS_Lat (deg)': -5.822805555555555,
'GPS_Lon (deg)': -35.25138888888889,
'GPS_Alt (km)': ''},
{'Time (sec)': 10,
'Press (hPa)': 997.505,
'GeopAlt (km)': 111.49,
'Temp (C)': 26.8309,
'RH (%)': 70.159,
'O3_mPa (mPa)': 24.5034,
'O3_ppmv (ppmv)': 0.0246,
'O3_DU (DU)': '',
'Wind_Dir (deg)': 136.5,
'Wind_Spd (m/s)': 10.5,
...
'TPump (C)': 15.7,
'O3CellI (uA)': 1.8132,
'GPS_Lat (deg)': '',
'GPS_Lon (deg)': '',
'GPS_Alt (km)': ''}]get_sounding_metadata(data_lancamento='YYYY-MM-DD')¶
Descrição:
Recupera os metadados de uma sondagem específica.
Parâmetros:
data_lancamento(str): Data de lançamento da sondagem.
Retorno:
dict: Metadados da sondagem ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
{'informacoes_gerais': {'data_lancamento': '2006-02-17',
'latitude_inicial': '-5.48945',
'longitude_inicial': '-35.261',
'elevacao': '14 metros',
'hora_lancamento': '15:11:12 UTC',
'numero_serie_sonda': '002570261',
'pressao_explosao': '13.3 hPa',
'localizacao': 'Barra de Maxaranguape/RN'},
'infos_superficie': {'pressao': '1012.4 hPa',
'temperatura': '29.0504 °C',
'ozonio_parcial': '16.7368 mPa',
'umidade_relativa': '78.738 %'},
'infos_tropopausa': {'pressao': '76.02 hPa',
'temperatura': '-83.14 °C',
'ozonio_parcial': '12.58 mPa',
'umidade_relativa': '1.04 %',
'altitude': '18125.16 m'},
'infos_topo': {'pressao': '13.25 hPa',
'temperatura': '-39.79 °C',
'ozonio_parcial': '117.0 mPa',
'umidade_relativa': '1.03 %',
'altitude': '29122.3 m'},
'infos_sensor_ozonio': {'numero_serie_bomba': '6a14489',
'corrente_fundo_aplicada': '0.01757 uA',
'volume_catodo': '2.5 ml',
'taxa_fluxo_bomba': '28.15 sec/100ml'}}get_available_variables(data_lancamento)¶
Descrição:
Recupera as variáveis disponíveis para uma data de lançamento específica.
Parâmetros:
data_lancamento(str): Data de lançamento das variáveis.
Retorno:
list: Variáveis disponíveis ou mensagem de erro.
Exemplo de Resposta:
Clique para expandir
['Press (hPa)',
'GeopAlt (km)',
'Temp (C)',
'RH (%)',
'O3_mPa (mPa)',
'O3_ppmv (ppmv)',
'O3_DU (DU)',
'Wind_Dir (deg)',
'Wind_Spd (m/s)',
'O3CellI (uA)']