{"id":15060663,"url":"https://github.com/Miguelapp10/ETL_OperadorLogistico","last_synced_at":"2025-07-11T02:32:01.406Z","repository":{"id":242555594,"uuid":"809882534","full_name":"Miguelapp10/ETL_OperadorLogistico","owner":"Miguelapp10","description":"extraer datos de la API de SimpliRoute, AndesExpress y Urbano en un rango de fechas específico y procesarlos para su análisis y almacenamiento en Google BigQuery","archived":false,"fork":false,"pushed_at":"2024-12-17T17:11:38.000Z","size":100,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-04-07T01:18:01.870Z","etag":null,"topics":["api-client","bigquery","pandas","python"],"latest_commit_sha":null,"homepage":"https://www.linkedin.com/in/miguelpazosp/","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Miguelapp10.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-06-03T16:20:57.000Z","updated_at":"2024-12-17T17:11:42.000Z","dependencies_parsed_at":"2024-11-21T04:02:37.483Z","dependency_job_id":"83d233bb-6227-4ea3-9737-8e6dfb561dca","html_url":"https://github.com/Miguelapp10/ETL_OperadorLogistico","commit_stats":{"total_commits":18,"total_committers":1,"mean_commits":18.0,"dds":0.0,"last_synced_commit":"11c676979206e3682cb958f267042363519d2a65"},"previous_names":["miguelapp10/api_simpliroute_urbano","miguelapp10/etl_operadorlogistico"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/Miguelapp10/ETL_OperadorLogistico","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miguelapp10%2FETL_OperadorLogistico","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miguelapp10%2FETL_OperadorLogistico/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miguelapp10%2FETL_OperadorLogistico/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miguelapp10%2FETL_OperadorLogistico/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Miguelapp10","download_url":"https://codeload.github.com/Miguelapp10/ETL_OperadorLogistico/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Miguelapp10%2FETL_OperadorLogistico/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":264712766,"owners_count":23652654,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["api-client","bigquery","pandas","python"],"created_at":"2024-09-24T23:02:26.534Z","updated_at":"2025-07-11T02:32:01.390Z","avatar_url":"https://github.com/Miguelapp10.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Proyecto: Integración de Operador Logistico ( Simpliroute , Urbano y AndesExpress) con Python\n\nEste proyecto está diseñado para interactuar con la API de Simpliroute , Urbano y AndesExpress, en un rango de fechas específico y procesarlos para su análisis y almacenamiento en Google BigQuery\n\n## Descripción\n\nEl propósito principal de este proyecto es:\n- Extraer datos relevantes de la API de SimpliRoute, Urbano y AndesExpress.\n- Procesar y limpiar los datos para un análisis eficiente.\n- Integrar los resultados con herramientas como BigQuery y Looker Studio.\n  \n## Recursos\n\n- Página web de SimpliRoute: [https://app3.simpliroute.com/](https://app3.simpliroute.com/)\n- Página web de Urbano: [https://portal.urbano.com.pe/login](https://portal.urbano.com.pe/login)\n- Página web de AndesExpress: [https://andesexpress.pe/](https://andesexpress.pe/)\n\nse presenta un resumen de cada sección del script:\n\n1. Importación de Bibliotecas y Configuración Inicial:\n\nSe importan bibliotecas esenciales como requests, json, pandas, datetime, concurrent.futures, geopandas, shapely, y herramientas específicas para Google Colab y Google Cloud.\nSe suprimen las advertencias de InsecureRequestWarning para evitar mensajes innecesarios durante las solicitudes HTTPS.\nSe definen las URLs base para vehículos, rutas y visitas de SimpliRoute.\nSe establecen los encabezados para las solicitudes HTTP, incluyendo el token de autenticación.\n\n2. Generación de un Rango de Fechas:\n\nSe define una función date_range para generar una lista de fechas entre una fecha de inicio (start_date) y la fecha actual (end_date).\n\n3. Función para Obtener Datos en una Fecha Específica:\n\nfetch_data_for_date toma una URL base y una fecha específica para realizar una solicitud GET a la API de SimpliRoute, devolviendo los datos en formato JSON si la respuesta es exitosa.\n\n4. Función para Obtener Datos en Paralelo:\n\nget_data_parallel utiliza ThreadPoolExecutor para hacer solicitudes a la API en paralelo para todas las fechas en el rango definido, recolectando y retornando todos los datos obtenidos.\n\n5. Extracción de Datos de la API:\n\nSe utilizan las funciones anteriores para obtener datos de vehículos, rutas y visitas en el rango de fechas especificado.\n\n6. Transformación de Datos con Pandas:\n\nSe convierten los datos obtenidos en DataFrames de pandas.\nSe seleccionan las columnas relevantes y se renombrar algunas columnas para mayor claridad.\nSe define una función map_observation_to_new_column para mapear los valores de checkout_observation a descripciones más legibles, aplicándola a los datos de visitas.\n\n7. Unión de DataFrames:\n\nSe realizan uniones entre los DataFrames de rutas, vehículos y visitas en base a campos comunes (vehicle, driver, route, planned_date), consolidando la información en un solo DataFrame.\n\n8. Carga de Datos en BigQuery:\n\nSe configura el proyecto de Google Cloud y se define el dataset y la tabla de destino en BigQuery.\nSe utiliza el cliente de BigQuery para cargar el DataFrame consolidado en la tabla especificada, reemplazando cualquier dato existente.\nEste script proporciona un flujo completo desde la extracción de datos de una API externa hasta su procesamiento y almacenamiento en BigQuery para análisis posterior, siendo útil para la integración de datos operativos en plataformas de análisis de datos.\n\n\n\n\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMiguelapp10%2FETL_OperadorLogistico","html_url":"https://awesome.ecosyste.ms/projects/github.com%2FMiguelapp10%2FETL_OperadorLogistico","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2FMiguelapp10%2FETL_OperadorLogistico/lists"}