Análise dos Dados - Treino

Nesta página será realizada a análise dos dados de treino que foram coletados em campo. Todos os dados aqui contidos são de vias consideradas boas ou ótimas,onde não há elementos considerados anomalias como lombadas, valetas tampas de bueiro, etc.

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:

[1]:
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.

[2]:
!git clone https://github.com/GabrielLima1995/geoglib.git
Cloning into 'geoglib'...
remote: Enumerating objects: 30, done.
remote: Counting objects: 100% (30/30), done.
remote: Compressing objects: 100% (21/21), done.
remote: Total 30 (delta 11), reused 26 (delta 7), pack-reused 0
Unpacking objects: 100% (30/30), done.

Caminhos necessários

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

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

Import das bibliotecas utilizadas

Importando as bibliotecas e dependências necessárias:

[5]:
!pip install geopandas
Collecting geopandas
  Downloading geopandas-0.9.0-py2.py3-none-any.whl (994 kB)
     |████████████████████████████████| 994 kB 11.7 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 38 kB/s
Collecting pyproj>=2.2.0
  Downloading pyproj-3.2.0-cp37-cp37m-manylinux2010_x86_64.whl (6.3 MB)
     |████████████████████████████████| 6.3 MB 60.3 MB/s
Requirement already satisfied: click>=4.0 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (7.1.2)
Requirement already satisfied: certifi in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (2021.5.30)
Requirement already satisfied: six>=1.7 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (1.15.0)
Collecting munch
  Downloading munch-2.5.0-py2.py3-none-any.whl (10 kB)
Collecting click-plugins>=1.0
  Downloading click_plugins-1.1.1-py2.py3-none-any.whl (7.5 kB)
Requirement already satisfied: setuptools in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (57.4.0)
Requirement already satisfied: attrs>=17 in /usr/local/lib/python3.7/dist-packages (from fiona>=1.8->geopandas) (21.2.0)
Collecting cligj>=0.5
  Downloading cligj-0.7.2-py3-none-any.whl (7.1 kB)
Requirement already satisfied: pytz>=2017.2 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (2018.9)
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: numpy>=1.15.4 in /usr/local/lib/python3.7/dist-packages (from pandas>=0.24.0->geopandas) (1.19.5)
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
[6]:
import sys
sys.path.insert(0,lib_path)
[7]:
import pandas as pd
import matplotlib.pyplot as plt
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.

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

Definições e inicializações graficas

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

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

Carregamento dos dados

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

[12]:
files_df = [pd.read_csv('{}train/{}'.format(main_path,f),delimiter=';', usecols= cols) for f in l ]
[13]:
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 treino.

[14]:
print('Número de arquivos de treino: {}'.format(len(files_gdf)))
Número de arquivos de treino: 6

Rua da Mooca

A Rua da Mooca foi escolhida por ser uma via boa/ótima e não conter elementos anômalos.

[15]:
print('Arquivos referentes a Rua da Mooca:\n{}\n{}\n{}'.format(l[0],l[2],l[4]))
Arquivos referentes a Rua da Mooca:
001-SP-BOM-001.txt
001-SP-BOM-003.txt
001-SP-BOM-005.txt
[16]:
show(plot.geo_circle(geodataframe=files_gdf[0],title='Trajeto Rua da Mooca',w=600,
                h=600,tile=True,alpha=0.2,circle_size=1,circle_color='cyan'))