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'))