Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/etra0/super-fly
https://github.com/etra0/super-fly
Last synced: 27 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/etra0/super-fly
- Owner: etra0
- Created: 2020-06-25T10:30:07.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2022-09-30T07:47:10.000Z (over 2 years ago)
- Last Synced: 2024-12-25T11:44:02.362Z (about 2 months ago)
- Language: JavaScript
- Size: 638 KB
- Stars: 0
- Watchers: 3
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
![]()
# Super-Fly
Super-Fly [(スーパーフライ, supā furai)](https://jojo.fandom.com/es/wiki/Super_Fly) es una web-app que permite generar una visualización interactiva usando Flowmap
y una visualización nueva llamada ModalCell# Configuración
## 1. Generar Mapbox Token
El primer paso consiste en generar un token de mapbox donde se
puede leer una explicación [acá](https://docs.mapbox.com/help/how-mapbox-works/access-tokens/).Una vez generado, modificar el archivo `.env` de la raíz del proyecto,
debería quedar algo así:
```
REACT_APP_MAPBOX_TOKEN=pk.abcDEFGHIJKL-q_jLKAJ
```
Notar que **no** va entre comillas.## 2. Generar los datos
Para esta visualización, se requiere que los datos cumplan los siguientes criterios:
El GeoJSON debe contener por cada `feature`:
* `ID`: identificador único que se ocupará para asignar los flujos
* `Comuna`: Nombre macro que se ocupa para agrupar (generar el cluster)
la visualización cuando el zoom está alejadoNótese que los nombres son **case sensitive**.
Para cambiar el GeoJSON a utilizar, en el código `src/App.js` línea 33
se debe colocar el nombre del GeoJSON (y este debe estar guardado en
`public/`). Siga el ejemplo con el ya existente (`public/santiago.json`)---
Los datos a utilizar deben estar en el formato
```json
[
{"origin_zone": 321, "destination_zone": 123, "dayofweek": 0,
"period": "morning", "key1": 0.6, "key2": 0.4, "trip_count": 321},{"origin_zone": 256, "destination_zone": 143, "dayofweek": 6,
"period": "afternoon", "key1": 0.3, "key2": 0.7, "trip_count": 192}
]
```
Donde las ids de `origin_zone` y `destination_zone` tienen que estar contenidas
en el GeoJSON en las `ID`s, `dayofweek` es un numero del 0 al 6 (considerando 0 día Lunes)Las llaves de inferencia pueden tener el nombre que desees, porque se configuran
en un json separado.En la carpeta `data-join` hay un jupyter de ejemplo que genera datos.
**Estos datos tienen que estar en la carpeta `public/`**
### 2.1. Configuración de la visualización
El proyecto debe contener un archivo llamado `public/chart_description.json`,
donde esperamos las llaves sean autoexplicativas:
```
[
{
# Nombre del dataset
"name": "Antenas",# Nombre del json a ser cargado (debe estar en public)
"dataset_name": "od_matrix_model_merged_90.json",# llaves contenidas dentro del dataset
"inference_keys": ["shared_taxi", "motorized", "non_motorized", "public"],# Alias de las llaves
"inference_keys_names": ["Colectivo", "Vehículo motorizado", "Vehículo no motorizado", "Transporte público"],# Alias del tipo de inferencia
"inference_filter_name": "Medios de viaje",# la cantidad de colores debe ser la misma que la cantidad de llaves
"inference_colors": [
"#e41a1c",
"#377eb8",
"#4daf4a",
"#984ea3"
],# Periodos disponibles para filtrar
"periods": [
"afternoon_peak",
"afternoon_valley",
"morning_valley",
"night",
"morning_peak_1",
"morning_peak_2",
"night_valley"
]
}
]
```Actualmente puede haber más de una configuración pero solo con un GeoJSON
(i.e. no se puede cambiar de ciudad).## 3. Compilación
Una vez hecho todos esos ajustes, ejecutar lo siguiente:
```bash
# Instalar dependencias de JavaScript (toma un rato)
npm install# Parchar bug en FlowMap
bash patch_flowmap.sh# Compilación del proyecto
npm run build
```Y con eso se debería generar una carpeta llamada `build`,
donde una vez estando dentro de la carpeta,
se debería poder levantar el proyecto con un simple `python -m http.server`