Análise dos Dados - Teste

Nesta seção será realizada a análise dos dados de teste que foram coletados em campo. Os dados aqui contidos são de ruas plurais, possuindo assim um vasto tipo de pavimento.

Configurações

As variáveis de ambiente, bibliotecas e caminhos serão aqui definidos.

Montando Google Drive

Para acessar os dados é necessário criar um link do google drive dentro da máquina do google colab, para isso fazemos:

[ ]:
from google.colab import drive
import os
drive.mount('/content/drive')
Mounted at /content/drive

Clonando a biblioteca geoglib

Há ainda, uma biblioteca chamada geoglib, biblioteca essa desenvolvida pelo autor para manipulações de dados geoespaciais. Para utilizá-la necessitamos clonar a mesma.

[ ]:
!git clone https://github.com/GabrielLima1995/geoglib.git
Cloning into 'geoglib'...
remote: Enumerating objects: 45, done.
remote: Counting objects: 100% (45/45), done.
remote: Compressing objects: 100% (31/31), done.
remote: Total 45 (delta 20), reused 37 (delta 12), pack-reused 0
Unpacking objects: 100% (45/45), done.

Caminhos necessários

Definimos também os caminhos necessários para os dados de interesse.

[ ]:
lib_path = '/content'
[ ]:
main_path = '/content/drive/MyDrive/IG2021/'

Import das bibliotecas utilizadas

Importando as bibliotecas e dependências necessárias:

[ ]:
!pip install geopandas
Collecting geopandas
  Downloading geopandas-0.9.0-py2.py3-none-any.whl (994 kB)
     |████████████████████████████████| 994 kB 8.0 MB/s
Collecting pyproj>=2.2.0
  Downloading pyproj-3.2.0-cp37-cp37m-manylinux_2_24_x86_64.whl (6.3 MB)
     |████████████████████████████████| 6.3 MB 19.5 MB/s
Requirement already satisfied: shapely>=1.6 in /usr/local/lib/python3.7/dist-packages (from geopandas) (1.7.1)
Requirement already satisfied: pandas>=0.24.0 in /usr/local/lib/python3.7/dist-packages (from geopandas) (1.1.5)
Collecting fiona>=1.8
  Downloading Fiona-1.8.20-cp37-cp37m-manylinux1_x86_64.whl (15.4 MB)
     |████████████████████████████████| 15.4 MB 36 kB/s
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (2021.5.30)
Requirement already satisfied: click>=4.0 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (7.1.2)
Collecting cligj>=0.5
  Downloading cligj-0.7.2-py3-none-any.whl (7.1 kB)
Requirement already satisfied: attrs>=17 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (21.2.0)
Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (57.4.0)
Collecting munch
  Downloading munch-2.5.0-py2.py3-none-any.whl (10 kB)
Requirement already satisfied: six>=1.7 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (1.15.0)
Collecting click-plugins>=1.0
  Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Requirement already satisfied: numpy>=1.15.4 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (1.19.5)
Requirement already satisfied: python-dateutil>=2.7.3 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (2.8.2)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (2018.9)
Installing collected packages: munch, cligj, click-plugins, pyproj, fiona, geopandas
Successfully installed click-plugins-1.1.1 cligj-0.7.2 fiona-1.8.20 geopandas-0.9.0 munch-2.5.0 pyproj-3.2.0
[ ]:
import sys
sys.path.insert(0,lib_path)
[ ]:
import pandas as pd
import matplotlib.pyplot as plt
import matplotlib.image as mpimg
from geoglib import gpd_manipulation
from geoglib import plot_bokeh as plot
from bokeh.plotting import figure,show

Váriaveis uteis

Seção para definição de alguns parâmetros e variáveis necessárias.

[ ]:
cols = ['DataTimeStamp','GPSLong','GPSLat','Vel','ExernalAcelX','ExernalAcelY',
 'ExernalAcelZ','ExernalGyroscopeX','ExernalGyroscopeY','ExernalGyroscopeZ',
 'Pitch','Roll','Yaw']
[ ]:
l = os.listdir('{}circuit'.format(main_path))

Definições e inicializações graficas

Seção para inicialização do método gráfico da biblioteca geoglib e afins.

[ ]:
plt.style.use('dark_background')
[ ]:
plot._initialize()

Carregamento dos dados

Os dados de Teste serão aqui lidos pela biblioteca pandas e convertidos para geopandas para análise a posteriori.

[ ]:
files_df = [pd.read_csv('{}circuit/{}'.format(main_path,f),delimiter=';', usecols= cols) for f in l ]
[ ]:
files_gdf = [gpd_manipulation.create_geopandas(f,['GPSLong','GPSLat'],'EPSG:4326','EPSG:3857') for f in files_df]

Análise dos Dados

Seção destinada para análise dos dados que foram coletados em campo e designados a teste.

[ ]:
print('Número de arquivos de teste: {}'.format(len(files_gdf)))
Número de arquivos de teste: 4
[ ]:
for x in l:print(x)
001-SP-CIR-002-002.txt
001-SP-CIR-001-002.txt
001-SP-CIR-002-001.txt
001-SP-CIR-001-001.txt

Circuito 1

O Circuito 1 é composto por 7 logradouros de diversos tipos (boas, médias ruins), são eles:

  1. Praça Jandaíra

  2. Rua Benjoi

  3. Rua Uacari

  4. Avenida Caititu

  5. Rua Uapuca

  6. Rua Caxinguele

  7. Avenida das Alamandas

Observação: Nesses endereços há 22 anomalias previamente identificadas (ground truth) para posterior conferência.

É importante ressaltar que cada volta possui uma coleta distinta(o carro pode ou não passar pelo elemento), assemelhando assim a uma situação normal de direção.

[ ]:
fig = plt.figure(figsize=(8, 8),dpi=100)
plt.axis('off')
img = mpimg.imread('{}/Circuito1/Circuito1.png'.format(main_path))
imgplot = plt.imshow(img)
_images/Data_analise_test_38_0.png

Para teste foi realizado duas voltas em diferentes velocidades.

001-SP-CIR-001-001.txt

Análise do Arquivo 1 do circuito 1

[ ]:
show(plot.geo_circle(geodataframe=files_gdf[3],title='Circuito 1- Volta 1',w=600,
                h=600,tile=True,alpha=0.2,circle_size=1,cmp_colum='Vel',cmp=True,
                palette_name='Turbo256',cmp_scale='linear'))