├── .gitignore ├── DESCRIPTION ├── Introducao_crossfire.md ├── Introduction_crossfire.md ├── NAMESPACE ├── Python └── crossfire │ ├── README.md │ ├── crossfire │ ├── __init__.py │ ├── fogocruzado_signin.py │ ├── fogocruzado_utils.py │ ├── get_cities.py │ └── get_fogocruzado.py │ ├── dist │ ├── crossfire-0.1.0-py3-none-any.whl │ ├── crossfire-0.1.0.tar.gz │ ├── crossfire-0.1.1-py3-none-any.whl │ ├── crossfire-0.1.1.tar.gz │ ├── crossfire-0.2.0-py3-none-any.whl │ └── crossfire-0.2.0.tar.gz │ ├── poetry.lock │ ├── pyproject.toml │ └── tests │ └── test_crossfire.py ├── R ├── fogocruzado_signin.R ├── get_cities.R ├── get_fogocruzado.R └── utils.R ├── README.md ├── crossfire.Rproj ├── crossfire_hexagono.png ├── env-example ├── man ├── fogocruzado_signin.Rd ├── get_cities.Rd └── get_fogocruzado.Rd ├── poetry.lock └── tables ├── list_columns.md └── lista_colunas.md /.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | .idea/* 3 | .crossfire -------------------------------------------------------------------------------- /DESCRIPTION: -------------------------------------------------------------------------------- 1 | Package: crossfire 2 | Type: Package 3 | Title: Extract data of Fogo Cruzado's repository of shootings in Brazil 4 | Version: 0.2.0 5 | Authors@R: c( 6 | person("Lucas", "Gelape", , "lucas@voltdata.info", c("aut", "cre")), 7 | person("Sérgio", "Spagnuolo", , "sergio@voltdata.info", c("aut")) 8 | ) 9 | Maintainer: Lucas Gelape 10 | Description: This package gives a set of functions to extract data from the API of 11 | Fogo Cruzado's data repository of shootings in Brazil (https://api.fogocruzado.org.br/). 12 | Currently, the repository contains geocoded data from shootings and gun shots fired 13 | in the metropolitan areas of Rio de Janeiro (since July 2016) and Recife (since April 2018). 14 | License: What license is it under? 15 | Encoding: UTF-8 16 | LazyData: true 17 | Depends: 18 | lubridate 19 | Imports: 20 | dplyr (>= 0.8.0.1), 21 | httr (>= 1.4.0), 22 | jsonlite (>= 1.6), 23 | rlang (>= 0.3.4), 24 | magrittr (>= 1.5), 25 | lifecycle 26 | RoxygenNote: 7.1.1 27 | -------------------------------------------------------------------------------- /Introducao_crossfire.md: -------------------------------------------------------------------------------- 1 | # Introdução ao crossfire 2 | 3 | O `crossfire` é um pacote criado para facilitar a utilização do banco de dados do projeto [Fogo Cruzado](https://fogocruzado.org.br/), "[uma plataforma digital colaborativa que tem o objetivo de registrar a incidência de tiroteios e a prevalência de violência armada na região metropolitana do Rio de Janeiro e de Recife](https://fogocruzado.org.br/perguntas-frequentes/#1553708190395-3a432702-4810)". 4 | 5 | O pacote facilita a extração de dados da [API de dados abertos desse repositório](https://api.fogocruzado.org.br/), desenvolvida pelo [Volt Data Lab](https://www.voltdata.info/). 6 | 7 | **Aviso: desde novembro de 2020, os usuários devem atualizar o `crossfire` para a sua versão `0.2.0`, devido a mudanças na API do Fogo Cruzado**. A função `get_fogocruzado()` da versão `0.1.0` retorna erros e não é mais utilizável. 8 | 9 | ## Instalando e carregando o pacote 10 | 11 | No momento, o pacote `crossfire` pode ser instalado diretamente da sua página no github: 12 | 13 | ``` 14 | if (!require("devtools")) install.packages("devtools") 15 | devtools::install_github("voltdatalab/crossfire") 16 | ``` 17 | 18 | Assim como os demais pacotes em R, uma vez instalado, ele deve ser carregado com a função `library()`. 19 | 20 | ``` 21 | library(crossfire) 22 | ``` 23 | 24 | ## Funções 25 | 26 | O pacote `crossfire` possui 3 funções: `fogocruzado_signin`, `get_fogocruzado` e `get_cities`. A seguir, explicamos o funcionamento de cada uma delas. 27 | 28 | ### fogocruzado_signin 29 | 30 | Para acessar a API do Fogo Cruzado, os [usuários devem ser registrados](https://api.fogocruzado.org.br/register) e usar o seu e-mail e senha. A função `fogocruzado_signin` realiza a inserção do usuário e senha, para que seja possível obter o Bearer token necessário para extração dos dados da API. 31 | 32 | A função registra o e-mail e senha no ambiente do R para a sessão atual, sendo necessário que o usuário repita essa operação a cada nova sessão em que pretenda utilizar o pacote `crossfire`. Lembramos que a senha para utilização da API é pessoal e intransferível. Portanto, os usuários devem ter cuidado ao registrá-la em scripts, para evitar seu compartilhamento. 33 | 34 | ``` 35 | # Registra usuario e senha 36 | fogocruzado_signin(email = "exemplo@conta_exemplo.com", password = "senha") 37 | ``` 38 | 39 | ### get_fogocruzado 40 | 41 | A principal função do `crossfire` é a `get_fogocruzado`, que permite extrair recortes dos registros de tiroteios compilados pelo Fogo Cruzado. Ela retorna um banco de dados (`data.frame`) que traz em cada linha um registro e 67 colunas de informações sobre esta ocorrência. A função possui os seguintes argumentos: `city`, `initial_date`, `final_date`, `state` e `security_agent`. 42 | 43 | * O argumento `city` (cidade) permite filtrar os registros por algumas cidades. O padrão desse argumento retorna as ocorrências em todas as cidades. A lista completa de cidades (com a grafia de seus nomes) pode ser obtida usando a função `get_cities`. 44 | 45 | ``` 46 | # Extrai os dados para todos os registros do repositorio de dados 47 | fogocruzado_all <- get_fogocruzado() 48 | 49 | # Extrai os dados para todos os registros nas cidades do Rio de Janeiro e Recife 50 | fogocruzado_rj_recife <- get_fogocruzado(city = c("Rio de Janeiro", "Recife")) 51 | ``` 52 | 53 | * Os argumentos `initial_date` (data inicial) e `final_date` (data final) permitem filtrar as observações segundo a data inicial e a data final da ocorrência, sendo que o padrão da função é o dia da consulta como data final, e seis meses antes como data inicial. Na nova versão da API, limitamos as consultas do pacote a um período máximo de 210 dias (cerca de 7 meses), que podem abranger qualquer período disponibilizado. [O Fogo Cruzado coleta dados sobre região metropolitana do Rio de Janeiro desde 05 de julho de 2016 e do Recife desde 01 de abril de 2018](https://fogocruzado.org.br/perguntas-frequentes/#1553708190396-78173b2a-059c). As datas devem ser incluídas como `character` no formato `"YYYY-MM-DD"` (Ano-Mês-Dia). 54 | 55 | ``` 56 | # Extrai todos os registros do ano de 2018 57 | fogocruzado_2018 <- get_fogocruzado(initial_date = "2018-07-01", final_date = "2018-12-31") 58 | ``` 59 | 60 | * O argumento `state` possibilita selecionar os registros segundo o estado em que ocorreram. O padrão retorna todas as ocorrências. 61 | 62 | ``` 63 | # Obtem dados de ocorrencias em cidades de Pernambuco 64 | fogocruzado_pe <- get_fogocruzado(state = "PE") 65 | ``` 66 | 67 | * Por fim, o argumento `security_agent` possibilita a seleção das ocorrências segundo a presença - `security_agent = 1` - ou não - `security_agent = 0` - das forças de segurança. 68 | 69 | ``` 70 | # Extrai os dados de todas as ocorrencias com presenca de agentes de seguranca 71 | fogocruzado_security <- get_fogocruzado(security_agent = 1) 72 | ``` 73 | 74 | ### get_cities 75 | 76 | A função `get_cities()` retorna um `data.frame` com informações sobre todas as cidades das regiões metropolitanas e do Rio de Janeiro e do Recife cobertas pela iniciativa. 77 | 78 | ``` 79 | cidades <- get_cities() 80 | ``` 81 | 82 | -------------------------------------------------------------------------------- /Introduction_crossfire.md: -------------------------------------------------------------------------------- 1 | # Introduction to crossfire 2 | 3 | `crossfire` is a package created to give easier access to the datasets of the project [Fogo Cruzado](https://fogocruzado.org.br/), which is a digital collaboration platform to register gun shootings in the metropolitan areas of Rio de Janeiro and Recife. 4 | 5 | The package facilitates data extraction from the [project open-data API](https://api.fogocruzado.org.br/), developed by [Volt Data Lab](https://www.voltdata.info/en-lg). 6 | 7 | **Please note that as of Nov. 2020, due to changes in Fogo Cruzado's API, user's should update `crossfire` to its' `0.2.0` version**. The `get_fogocruzado()` function from the `0.1.0` version returns errors and cannot be used. 8 | 9 | ## Installing and loading the package 10 | 11 | Currently, the `crossfire` package can be installed directly from its GitHub repository: 12 | 13 | ``` 14 | if (!require("devtools")) install.packages("devtools") 15 | devtools::install_github("voltdatalab/crossfire") 16 | ``` 17 | 18 | Once installed, it can be loaded using the `library` function. 19 | 20 | ``` 21 | library(crossfire) 22 | ``` 23 | 24 | ## Functions 25 | 26 | `crossfire` has 3 functions: `fogocruzado_signin`, `get_fogocruzado` and `get_cities`. Below, we explain how they can be used. 27 | 28 | ### fogocruzado_signin 29 | 30 | To access Fogo Cruzado's API, [users should be registered](https://api.fogocruzado.org.br/register) and insert their e-mail and password for authentication. `fogocruzado_signin` function registers these information on the current R session, so that it can be used to obtain the Bearer token to extract data using the API. 31 | 32 | As noted, the function sets the e-mail and password in the current R environment. Thus, users should repeat this operation on every new R session in which they intend to use the `crossfire` package. We note that user and password are personal. Therefore, users should be careful when writing and saving them in R scripts, in order to avoid sharing these information. 33 | 34 | ``` 35 | # Registers user and password 36 | fogocruzado_signin(email = "example@account_exeample.com", password = "pass") 37 | ``` 38 | 39 | ### get_fogocruzado 40 | 41 | `crossfire` main function is `get_fogocruzado`. It allows the extraction from slices to the whole dataset of shootings registered by Fogo Cruzado. The function returns a data frame, in which each line corresponds to a shooting registered and its information. The function has the following arguments: `city`, `initial_date`, `final_date`, `state`, and `security_agent`. 42 | 43 | * `city` allows to filter the observations by some cities. Their default returns all observations. The complete list of cities can be found using the `get_cities` function. 44 | 45 | ``` 46 | # Extract data for all registered shootings 47 | fogocruzado_all <- get_fogocruzado() 48 | 49 | # Extract data for shootings in the cities of Rio de Janeiro and Recife 50 | fogocruzado_rj_recife <- get_fogocruzado(city = c("Rio de Janeiro", "Recife")) 51 | ``` 52 | 53 | * `initial_date` and `final_date` let users select observations according to a certain period of time. The default is set to the current date as the final date and considers a 6-month interval to set the initial date. For the new API version, the package limits requests to a maximum of 210 days (roughly 7 months), which can cover any interval from the full dataset. ([Fogo Cruzado has been collecting data about Rio de Janeiro's metropolitan area since July 5th, 2016 and Recife's metropolitan area since April 1st, 2018](https://fogocruzado.org.br/perguntas-frequentes/#1553708190396-78173b2a-059c)). Initial and final dates should be included as `character` in the `"YYYY-MM-DD"` format. 54 | 55 | ``` 56 | # Extract all data from 2018 57 | fogocruzado_2018 <- get_fogocruzado(initial_date = "2018-07-01", final_date = "2018-12-31") 58 | ``` 59 | 60 | * `state` let users filter occurences according to the country's state where they happened. Default returns all observations. 61 | 62 | ``` 63 | # Get all data from shootings registered in Pernambuco 64 | fogocruzado_pe <- get_fogocruzado(state = "PE") 65 | ``` 66 | 67 | * `security_agent` allows users to select shootings according to the presence of security agents in the occurrence, assuming the value of `security_agent = 1` when they are present, and `security_agent = 0` - when they're not. 68 | 69 | ``` 70 | # Extract data from occurents where security agents were present 71 | fogocruzado_security <- get_fogocruzado(security_agent = 1) 72 | ``` 73 | 74 | ### get_cities 75 | 76 | `get_cities()` returns a `data.frame` with information about all cities from the Rio de Janeiro and Recife metropolitan areas covered by the Fogo Cruzado initiative. 77 | 78 | ``` 79 | cities <- get_cities() 80 | ``` 81 | -------------------------------------------------------------------------------- /NAMESPACE: -------------------------------------------------------------------------------- 1 | # Generated by roxygen2: do not edit by hand 2 | 3 | export(fogocruzado_signin) 4 | export(get_cities) 5 | export(get_fogocruzado) 6 | importFrom(magrittr,"%>%") 7 | importFrom(rlang,.data) 8 | -------------------------------------------------------------------------------- /Python/crossfire/README.md: -------------------------------------------------------------------------------- 1 | 2 | hexagon crossfire 3 | 4 | 5 | # crossfire 6 | 7 | `crossfire` is a package created to give easier access to the datasets of the project [Fogo Cruzado](https://fogocruzado.org.br/), which is a digital collaboration platform to register gun shootings in the metropolitan areas of Rio de Janeiro and Recife. 8 | 9 | The package facilitates data extraction from the [project open-data API](https://api.fogocruzado.org.br/), developed by [Volt Data Lab](https://www.voltdata.info/en-lg). 10 | 11 | ## Installing and loading the package 12 | 13 | Currently, the `crossfire` package can be installed directly from pip: 14 | 15 | ``` 16 | pip install crossfire 17 | ``` 18 | 19 | ## Functions 20 | 21 | `crossfire` has 3 functions: `fogocruzado_signin`, `get_fogocruzado` and `get_cities`. 22 | 23 | * `fogocruzado_signin` is used to give access to Fogo Cruzado's API. To access Fogo Cruzado's API, [users should be registered](https://api.fogocruzado.org.br/register) and insert their e-mail and password for authentication. Thus, the function registers these information on the current R session, so that it can be used to obtain the Bearer token to extract data using the API. 24 | 25 | 26 | ``` 27 | >>> from crossfire import fogocruzado_signin 28 | >>> fogocruzado_signin('user@host.com', 'password') 29 | ``` 30 | 31 | * `get_fogocruzado` extracts slices or the whole dataset of shootings registered by Fogo Cruzado. The function returns a data frame, in which each line corresponds to a shooting registered and its information. It can also filter the data according to some parameters, city/state - `city` and `state` -, initial and final date - `initial_date` and `final_date` -, and the presence of security forces - `security_agent`. One should note that each request using the `crossfire` package needs to be under a 210 days (roughly 7 months) time interval, from any portion of the full dataset. 32 | 33 | ``` 34 | >>> from crossfire import get_fogocruzado 35 | >>> fogocruzado = get_fogocruzado(state=['RJ']) 36 | ``` 37 | 38 | ## Other examples 39 | 40 | ``` 41 | from datetime import date 42 | from crossfire import fogocruzado_signin, get_fogocruzado 43 | 44 | # Extract data for all registered shootings 45 | fogocruzado = get_fogocruzado(() 46 | 47 | # Extract data for shootings in the cities of Rio de Janeiro and Recife in 2018 48 | fogocruzado_rj_recife = get_fogocruzado( 49 | city = ["Rio de Janeiro, "Recife"], 50 | initial_date = date(2018, 07, 01), 51 | final_date = date(2018, 12, 31)) 52 | 53 | # Extract data from occurents reported by the police and in which security agents were present 54 | fogocruzado_security = get_fogocruzado(security_agent = [1]) 55 | ``` 56 | 57 | * `get_cities()` returns a `data.frame` with information about all cities from the Rio de Janeiro and Recife metropolitan areas covered by the Fogo Cruzado initiative. 58 | 59 | ## More information 60 | 61 | For more information on how the package works and for a complete list of functions, see the tutorials (in [English](https://github.com/voltdatalab/crossfire/blob/master/Introduction_crossfire.md) and [Portuguese](https://github.com/voltdatalab/crossfire/blob/master/Introducao_crossfire.md)). 62 | 63 | ## Python module authors 64 | 65 | [Felipe Sodré Mendes Barros](https://github.com/FelipeSBarros) 66 | > Funding: This implementation was funded by CYTED project number 520RT0010. redGeoLIBERO 67 | 68 | ## API Authors 69 | 70 | [Lucas Gelape](https://github.com/lgelape), for [Volt Data Lab](https://www.voltdata.info/en-lg). 71 | 72 | ## Contributors 73 | 74 | [Sérgio Spagnuolo](https://github.com/voltdatalab) and [Denisson Silva](https://github.com/silvadenisson). 75 | -------------------------------------------------------------------------------- /Python/crossfire/crossfire/__init__.py: -------------------------------------------------------------------------------- 1 | __version__ = '0.1.0' 2 | 3 | from crossfire.fogocruzado_signin import fogocruzado_signin 4 | from crossfire.get_fogocruzado import get_fogocruzado 5 | -------------------------------------------------------------------------------- /Python/crossfire/crossfire/fogocruzado_signin.py: -------------------------------------------------------------------------------- 1 | import os 2 | 3 | from crossfire.fogocruzado_utils import get_token_fogocruzado 4 | 5 | 6 | def fogocruzado_signin(email, password): 7 | """ 8 | Function to login to fogocruzado API 9 | :param email: string 10 | User e-mail registered in the fogocruzado API 11 | :param password: string 12 | User password registered in the fogocruzado API 13 | :return: 14 | None 15 | Example 16 | ------- 17 | >>> from crossfire import fogocruzado_signin 18 | >>> fogocruzado_signin(email='user@host.com', password='password') 19 | """ 20 | 21 | os.environ['FOGO_CRUZADO_EMAIL'] = email 22 | os.environ['FOGO_CRUZADO_PASSWORD'] = password 23 | 24 | get_token_fogocruzado() 25 | -------------------------------------------------------------------------------- /Python/crossfire/crossfire/fogocruzado_utils.py: -------------------------------------------------------------------------------- 1 | import json 2 | import os 3 | from warnings import warn 4 | 5 | import requests 6 | from pandas import DataFrame 7 | 8 | 9 | def fogocruzado_key(): 10 | """ 11 | # Get Fogo Cruzado's API from user and password informed in fogocruzado_signin() 12 | :return: string 13 | Fogo Cruzado's API key 14 | """ 15 | 16 | try: 17 | key = os.getenv("FOGO_CRUZADO_API_TOKEN") 18 | except not key: 19 | raise warn( 20 | ("There's no key available. Please check your sign-in information." 21 | "If you haven't included an authorized e-mail and password in this python session yet," 22 | "please do so using the fogocruzado_signin() function"), 23 | Warning) 24 | return key 25 | 26 | 27 | def get_token_fogocruzado(): 28 | """ 29 | Get token from Fogo Cruzado's API 30 | :raises: 31 | Exception 32 | If credentials do not correspond to Fogo Cruzado's records. 33 | """ 34 | 35 | try: 36 | post_fogocruzado = requests.post( 37 | "https://api.fogocruzado.org.br/api/v1/auth/login", 38 | data={'email': os.getenv("FOGO_CRUZADO_EMAIL"), 39 | 'password': os.getenv("FOGO_CRUZADO_PASSWORD")} 40 | ) 41 | post_fogocruzado.raise_for_status() 42 | 43 | except requests.exceptions.HTTPError: 44 | raise warn( 45 | ("These credentials do not correspond to Fogo Cruzado's records." 46 | "Please check your e-mail and password or access https://api.fogocruzado.org.br/register to register."), 47 | Warning) 48 | 49 | access_fogocruzado = json.loads(post_fogocruzado.content).get('access_token') 50 | accesstoken_fogocruzado = f"Bearer {access_fogocruzado}" 51 | os.environ["FOGO_CRUZADO_API_TOKEN"] = accesstoken_fogocruzado 52 | 53 | 54 | def extract_data_api(link): 55 | """ 56 | Extract data from occurrences in Fogo Cruzado's API 57 | :param link: string 58 | Request the API url with search parameters 59 | 60 | :return: pandas.DataFrame 61 | Result from the request API in pandas DataFrame format 62 | """ 63 | warn( 64 | ("Extracting data from Fogo Cruzado's API." 65 | "..."), 66 | Warning) 67 | headers = {'Authorization': fogocruzado_key()} 68 | fogocruzado_request = requests.get( 69 | url=link, 70 | headers=headers) 71 | 72 | fogocruzado_request.encoding = "utf8" 73 | banco = json.loads(fogocruzado_request.content) 74 | banco = DataFrame(banco) 75 | return banco 76 | 77 | 78 | def extract_cities_api(): 79 | """ 80 | Extract data from cities in Fogo Cruzado's API 81 | 82 | :return: pandas.DataFrame 83 | Result from the request API in pandas DataFrame format 84 | """ 85 | 86 | warn( 87 | ("Extracting data from Fogo Cruzado's API." 88 | "..."), 89 | Warning) 90 | headers = {'Authorization': fogocruzado_key()} 91 | fogocruzado_cities = requests.get( 92 | url="https://api.fogocruzado.org.br/api/v1/cities", 93 | headers=headers) 94 | fogocruzado_cities.encoding = "utf8" 95 | banco = json.loads(fogocruzado_cities.content) 96 | banco = DataFrame(banco) 97 | return banco 98 | -------------------------------------------------------------------------------- /Python/crossfire/crossfire/get_cities.py: -------------------------------------------------------------------------------- 1 | from crossfire.fogocruzado_utils import extract_cities_api 2 | from pandas import DataFrame, to_numeric 3 | 4 | 5 | def get_cities(): 6 | """ 7 | extracts data about cities covered by Fogo Cruzado's project, 8 | from its API. 9 | The function returns a pandas DataFrame where each observation corresponds to a city. 10 | :return: pandas.DataFrame 11 | """ 12 | banco = extract_cities_api() 13 | 14 | if type(banco) is not DataFrame: 15 | fogocruzado_signin() # Does it make sense? Shouldn't be get_token_fogocruzado()? 16 | banco = extract_cities_api() 17 | 18 | banco.DensidadeDemografica = to_numeric(banco.DensidadeDemografica) 19 | 20 | return (banco) 21 | -------------------------------------------------------------------------------- /Python/crossfire/crossfire/get_fogocruzado.py: -------------------------------------------------------------------------------- 1 | from datetime import date 2 | from warnings import warn 3 | 4 | from crossfire.fogocruzado_utils import extract_data_api, get_token_fogocruzado 5 | from dateutil.relativedelta import relativedelta 6 | from geopandas import GeoDataFrame, points_from_xy 7 | from pandas import to_numeric 8 | 9 | 10 | def get_fogocruzado(city=None, 11 | initial_date=date.today() - relativedelta(months=6), 12 | final_date=date.today(), 13 | state=['PE', 'RJ'], 14 | security_agent=[0, 1]): 15 | """ 16 | :param city: string 17 | :param initial_date: datetime.date 18 | Initial searching date 19 | :param final_date: date.time 20 | final searching date 21 | :param state: list with string, by default ['PE', 'RJ'] 22 | 23 | :param security_agent: list with int, by default [0, 1] 24 | :return: 25 | gpd.GeoDataFrame 26 | crossfire occurrences and metadata 27 | :example: 28 | >>> from crossfire import crossfire_signin, get_crossfire 29 | >>> from datetime import date 30 | >>> crossfire_signin(email='user@host.com', password='password') 31 | >>> get_crossfire(initial_date=date(2020-1-1), final_date=date(2020-3-1), state='RJ') 32 | """ 33 | if (final_date - initial_date).days >= 210: 34 | warn( 35 | ( 36 | "The interval between the initial and final date cannot be longer than 210 days (7 months). Please check your inputs."), 37 | Warning) 38 | 39 | else: 40 | banco = extract_data_api( 41 | link=f'https://api.fogocruzado.org.br/api/v1/occurrences?data_ocorrencia[gt]={initial_date}&data_ocorrencia[lt]={final_date}' 42 | ) 43 | banco_geo = GeoDataFrame( 44 | banco, 45 | geometry=points_from_xy( 46 | banco.longitude_ocorrencia, 47 | banco.latitude_ocorrencia), 48 | crs="EPSG:4326" 49 | ) 50 | 51 | if type(banco_geo) != GeoDataFrame: 52 | warn( 53 | ("Renovating token..."), 54 | Warning) 55 | get_token_fogocruzado() 56 | banco = extract_data_api( 57 | link=f'https://api.fogocruzado.org.br/api/v1/occurrences?data_ocorrencia[gt]={initial_date}&data_ocorrencia[lt]={final_date}' 58 | ) 59 | banco_geo = GeoDataFrame( 60 | banco, 61 | geometry=points_from_xy( 62 | banco.longitude_ocorrencia, 63 | banco.latitude_ocorrencia), 64 | crs="EPSG:4326" 65 | ) 66 | 67 | else: 68 | banco.densidade_demo_cidade = to_numeric(banco.densidade_demo_cidade) 69 | 70 | if isinstance(city, str): 71 | city = [city] 72 | 73 | if isinstance(city, list): 74 | banco_geo = banco_geo[banco_geo.nome_cidade.isin(city)] 75 | 76 | if isinstance(state, str): 77 | state = [state] 78 | 79 | if isinstance(state, list): 80 | banco_geo = banco_geo[banco_geo.uf_estado.isin(state)] 81 | 82 | if isinstance(security_agent, int): 83 | security_agent = [security_agent] 84 | 85 | if isinstance(security_agent, list): 86 | banco_geo = banco_geo[banco_geo.presen_agen_segur_ocorrencia.isin(security_agent)] 87 | 88 | # banco.densidade_demo_cidade = banco.densidade_demo_cidade.astype(str) 89 | 90 | return banco_geo 91 | -------------------------------------------------------------------------------- /Python/crossfire/dist/crossfire-0.1.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/Python/crossfire/dist/crossfire-0.1.0-py3-none-any.whl -------------------------------------------------------------------------------- /Python/crossfire/dist/crossfire-0.1.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/Python/crossfire/dist/crossfire-0.1.0.tar.gz -------------------------------------------------------------------------------- /Python/crossfire/dist/crossfire-0.1.1-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/Python/crossfire/dist/crossfire-0.1.1-py3-none-any.whl -------------------------------------------------------------------------------- /Python/crossfire/dist/crossfire-0.1.1.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/Python/crossfire/dist/crossfire-0.1.1.tar.gz -------------------------------------------------------------------------------- /Python/crossfire/dist/crossfire-0.2.0-py3-none-any.whl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/Python/crossfire/dist/crossfire-0.2.0-py3-none-any.whl -------------------------------------------------------------------------------- /Python/crossfire/dist/crossfire-0.2.0.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/Python/crossfire/dist/crossfire-0.2.0.tar.gz -------------------------------------------------------------------------------- /Python/crossfire/poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "attrs" 3 | version = "21.2.0" 4 | description = "Classes Without Boilerplate" 5 | category = "main" 6 | optional = false 7 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 8 | 9 | [package.extras] 10 | dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] 11 | docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] 12 | tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] 13 | tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] 14 | 15 | [[package]] 16 | name = "certifi" 17 | version = "2021.10.8" 18 | description = "Python package for providing Mozilla's CA Bundle." 19 | category = "main" 20 | optional = false 21 | python-versions = "*" 22 | 23 | [[package]] 24 | name = "charset-normalizer" 25 | version = "2.0.7" 26 | description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." 27 | category = "main" 28 | optional = false 29 | python-versions = ">=3.5.0" 30 | 31 | [package.extras] 32 | unicode_backport = ["unicodedata2"] 33 | 34 | [[package]] 35 | name = "click" 36 | version = "8.0.3" 37 | description = "Composable command line interface toolkit" 38 | category = "main" 39 | optional = false 40 | python-versions = ">=3.6" 41 | 42 | [package.dependencies] 43 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 44 | 45 | [[package]] 46 | name = "click-plugins" 47 | version = "1.1.1" 48 | description = "An extension module for click to enable registering CLI commands via setuptools entry-points." 49 | category = "main" 50 | optional = false 51 | python-versions = "*" 52 | 53 | [package.dependencies] 54 | click = ">=4.0" 55 | 56 | [package.extras] 57 | dev = ["pytest (>=3.6)", "pytest-cov", "wheel", "coveralls"] 58 | 59 | [[package]] 60 | name = "cligj" 61 | version = "0.7.2" 62 | description = "Click params for commmand line interfaces to GeoJSON" 63 | category = "main" 64 | optional = false 65 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4" 66 | 67 | [package.dependencies] 68 | click = ">=4.0" 69 | 70 | [package.extras] 71 | test = ["pytest-cov"] 72 | 73 | [[package]] 74 | name = "colorama" 75 | version = "0.4.4" 76 | description = "Cross-platform colored terminal text." 77 | category = "main" 78 | optional = false 79 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 80 | 81 | [[package]] 82 | name = "datetime" 83 | version = "4.3" 84 | description = "This package provides a DateTime data type, as known from Zope. Unless you need to communicate with Zope APIs, you're probably better off using Python's built-in datetime module." 85 | category = "main" 86 | optional = false 87 | python-versions = "*" 88 | 89 | [package.dependencies] 90 | pytz = "*" 91 | "zope.interface" = "*" 92 | 93 | [[package]] 94 | name = "fiona" 95 | version = "1.8.20" 96 | description = "Fiona reads and writes spatial data files" 97 | category = "main" 98 | optional = false 99 | python-versions = "*" 100 | 101 | [package.dependencies] 102 | attrs = ">=17" 103 | certifi = "*" 104 | click = ">=4.0" 105 | click-plugins = ">=1.0" 106 | cligj = ">=0.5" 107 | munch = "*" 108 | six = ">=1.7" 109 | 110 | [package.extras] 111 | all = ["pytest (>=3)", "boto3 (>=1.2.4)", "pytest-cov", "shapely", "mock"] 112 | calc = ["shapely"] 113 | s3 = ["boto3 (>=1.2.4)"] 114 | test = ["pytest (>=3)", "pytest-cov", "boto3 (>=1.2.4)", "mock"] 115 | 116 | [[package]] 117 | name = "geopandas" 118 | version = "0.10.1" 119 | description = "Geographic pandas extensions" 120 | category = "main" 121 | optional = false 122 | python-versions = ">=3.7" 123 | 124 | [package.dependencies] 125 | fiona = ">=1.8" 126 | pandas = ">=0.25.0" 127 | pyproj = ">=2.2.0" 128 | shapely = ">=1.6" 129 | 130 | [[package]] 131 | name = "idna" 132 | version = "3.3" 133 | description = "Internationalized Domain Names in Applications (IDNA)" 134 | category = "main" 135 | optional = false 136 | python-versions = ">=3.5" 137 | 138 | [[package]] 139 | name = "munch" 140 | version = "2.5.0" 141 | description = "A dot-accessible dictionary (a la JavaScript objects)" 142 | category = "main" 143 | optional = false 144 | python-versions = "*" 145 | 146 | [package.dependencies] 147 | six = "*" 148 | 149 | [package.extras] 150 | testing = ["pytest", "coverage", "astroid (>=1.5.3,<1.6.0)", "pylint (>=1.7.2,<1.8.0)", "astroid (>=2.0)", "pylint (>=2.3.1,<2.4.0)"] 151 | yaml = ["PyYAML (>=5.1.0)"] 152 | 153 | [[package]] 154 | name = "numpy" 155 | version = "1.21.1" 156 | description = "NumPy is the fundamental package for array computing with Python." 157 | category = "main" 158 | optional = false 159 | python-versions = ">=3.7" 160 | 161 | [[package]] 162 | name = "pandas" 163 | version = "1.3.3" 164 | description = "Powerful data structures for data analysis, time series, and statistics" 165 | category = "main" 166 | optional = false 167 | python-versions = ">=3.7.1" 168 | 169 | [package.dependencies] 170 | numpy = ">=1.17.3" 171 | python-dateutil = ">=2.7.3" 172 | pytz = ">=2017.3" 173 | 174 | [package.extras] 175 | test = ["hypothesis (>=3.58)", "pytest (>=6.0)", "pytest-xdist"] 176 | 177 | [[package]] 178 | name = "pyproj" 179 | version = "3.2.1" 180 | description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" 181 | category = "main" 182 | optional = false 183 | python-versions = ">=3.7" 184 | 185 | [package.dependencies] 186 | certifi = "*" 187 | 188 | [[package]] 189 | name = "python-dateutil" 190 | version = "2.8.2" 191 | description = "Extensions to the standard Python datetime module" 192 | category = "main" 193 | optional = false 194 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 195 | 196 | [package.dependencies] 197 | six = ">=1.5" 198 | 199 | [[package]] 200 | name = "python-decouple" 201 | version = "3.5" 202 | description = "Strict separation of settings from code." 203 | category = "dev" 204 | optional = false 205 | python-versions = "*" 206 | 207 | [[package]] 208 | name = "pytz" 209 | version = "2021.3" 210 | description = "World timezone definitions, modern and historical" 211 | category = "main" 212 | optional = false 213 | python-versions = "*" 214 | 215 | [[package]] 216 | name = "requests" 217 | version = "2.26.0" 218 | description = "Python HTTP for Humans." 219 | category = "main" 220 | optional = false 221 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" 222 | 223 | [package.dependencies] 224 | certifi = ">=2017.4.17" 225 | charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} 226 | idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} 227 | urllib3 = ">=1.21.1,<1.27" 228 | 229 | [package.extras] 230 | socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] 231 | use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] 232 | 233 | [[package]] 234 | name = "shapely" 235 | version = "1.7.1" 236 | description = "Geometric objects, predicates, and operations" 237 | category = "main" 238 | optional = false 239 | python-versions = "*" 240 | 241 | [package.extras] 242 | all = ["numpy", "pytest", "pytest-cov"] 243 | test = ["pytest", "pytest-cov"] 244 | vectorized = ["numpy"] 245 | 246 | [[package]] 247 | name = "six" 248 | version = "1.16.0" 249 | description = "Python 2 and 3 compatibility utilities" 250 | category = "main" 251 | optional = false 252 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 253 | 254 | [[package]] 255 | name = "urllib3" 256 | version = "1.26.7" 257 | description = "HTTP library with thread-safe connection pooling, file post, and more." 258 | category = "main" 259 | optional = false 260 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" 261 | 262 | [package.extras] 263 | brotli = ["brotlipy (>=0.6.0)"] 264 | secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] 265 | socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] 266 | 267 | [[package]] 268 | name = "zope.interface" 269 | version = "5.4.0" 270 | description = "Interfaces for Python" 271 | category = "main" 272 | optional = false 273 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 274 | 275 | [package.extras] 276 | docs = ["sphinx", "repoze.sphinx.autointerface"] 277 | test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] 278 | testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] 279 | 280 | [metadata] 281 | lock-version = "1.1" 282 | python-versions = "^3.9" 283 | content-hash = "2ea7457927131060e08ecf004498ff133520485422bcd59429de71cac794b8f7" 284 | 285 | [metadata.files] 286 | attrs = [ 287 | {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, 288 | {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, 289 | ] 290 | certifi = [ 291 | {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, 292 | {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, 293 | ] 294 | charset-normalizer = [ 295 | {file = "charset-normalizer-2.0.7.tar.gz", hash = "sha256:e019de665e2bcf9c2b64e2e5aa025fa991da8720daa3c1138cadd2fd1856aed0"}, 296 | {file = "charset_normalizer-2.0.7-py3-none-any.whl", hash = "sha256:f7af805c321bfa1ce6714c51f254e0d5bb5e5834039bc17db7ebe3a4cec9492b"}, 297 | ] 298 | click = [ 299 | {file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"}, 300 | {file = "click-8.0.3.tar.gz", hash = "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"}, 301 | ] 302 | click-plugins = [ 303 | {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, 304 | {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, 305 | ] 306 | cligj = [ 307 | {file = "cligj-0.7.2-py3-none-any.whl", hash = "sha256:c1ca117dbce1fe20a5809dc96f01e1c2840f6dcc939b3ddbb1111bf330ba82df"}, 308 | {file = "cligj-0.7.2.tar.gz", hash = "sha256:a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27"}, 309 | ] 310 | colorama = [ 311 | {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, 312 | {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, 313 | ] 314 | datetime = [ 315 | {file = "DateTime-4.3-py2.py3-none-any.whl", hash = "sha256:371dba07417b929a4fa685c2f7a3eaa6a62d60c02947831f97d4df9a9e70dfd0"}, 316 | {file = "DateTime-4.3.tar.gz", hash = "sha256:5cef605bab8259ff61281762cdf3290e459fbf0b4719951d5fab967d5f2ea0ea"}, 317 | ] 318 | fiona = [ 319 | {file = "Fiona-1.8.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:02880556540e36ad6aac97687799d9b3093c354787a47bc0e73026c7fc15f1b3"}, 320 | {file = "Fiona-1.8.20-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3f668c471fa2f8c9c0a9ca83639cb2c8dcc93edc3d93d43dba2f9e8da38ad53e"}, 321 | {file = "Fiona-1.8.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:54f81039e913d0f88728ef23edf5a69038dec94dea54f4c799f972ba8e2a7d40"}, 322 | {file = "Fiona-1.8.20-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:328340a448bed5c43d119f61f760368a04d13a302c59d2fccb051a3ff021f4b8"}, 323 | {file = "Fiona-1.8.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:03f910380dbe684730b59b817aa030e6e9a3ee79211b66c6db2d1c8fe6ea12de"}, 324 | {file = "Fiona-1.8.20-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:bef100ebd82afb9a4d67096216e82611b82ca9341330e4805832d7ff8c9bc1f7"}, 325 | {file = "Fiona-1.8.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5e1cef608c6de9039eaa65b395024096e3189ab0559a5a328c68c4690c3302ce"}, 326 | {file = "Fiona-1.8.20-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e72e4a5b84ec410be531d4fe4c1a5c87c6c0e92d01116c145c0f1b33f81c8080"}, 327 | {file = "Fiona-1.8.20.tar.gz", hash = "sha256:a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b"}, 328 | ] 329 | geopandas = [ 330 | {file = "geopandas-0.10.1-py2.py3-none-any.whl", hash = "sha256:9fce7062b5d2ca162d2b14c5a8d6f2a34a4158176214fafd683964df7444eb5e"}, 331 | {file = "geopandas-0.10.1.tar.gz", hash = "sha256:6429ee4e0cc94f26aff12139445196ef83fe17cadbe816925508a1799f60a681"}, 332 | ] 333 | idna = [ 334 | {file = "idna-3.3-py3-none-any.whl", hash = "sha256:84d9dd047ffa80596e0f246e2eab0b391788b0503584e8945f2368256d2735ff"}, 335 | {file = "idna-3.3.tar.gz", hash = "sha256:9d643ff0a55b762d5cdb124b8eaa99c66322e2157b69160bc32796e824360e6d"}, 336 | ] 337 | munch = [ 338 | {file = "munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd"}, 339 | {file = "munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2"}, 340 | ] 341 | numpy = [ 342 | {file = "numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38e8648f9449a549a7dfe8d8755a5979b45b3538520d1e735637ef28e8c2dc50"}, 343 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fd7d7409fa643a91d0a05c7554dd68aa9c9bb16e186f6ccfe40d6e003156e33a"}, 344 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a75b4498b1e93d8b700282dc8e655b8bd559c0904b3910b144646dbbbc03e062"}, 345 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1412aa0aec3e00bc23fbb8664d76552b4efde98fb71f60737c83efbac24112f1"}, 346 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e46ceaff65609b5399163de5893d8f2a82d3c77d5e56d976c8b5fb01faa6b671"}, 347 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c6a2324085dd52f96498419ba95b5777e40b6bcbc20088fddb9e8cbb58885e8e"}, 348 | {file = "numpy-1.21.1-cp37-cp37m-win32.whl", hash = "sha256:73101b2a1fef16602696d133db402a7e7586654682244344b8329cdcbbb82172"}, 349 | {file = "numpy-1.21.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7a708a79c9a9d26904d1cca8d383bf869edf6f8e7650d85dbc77b041e8c5a0f8"}, 350 | {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95b995d0c413f5d0428b3f880e8fe1660ff9396dcd1f9eedbc311f37b5652e16"}, 351 | {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:635e6bd31c9fb3d475c8f44a089569070d10a9ef18ed13738b03049280281267"}, 352 | {file = "numpy-1.21.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a3d5fb89bfe21be2ef47c0614b9c9c707b7362386c9a3ff1feae63e0267ccb6"}, 353 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a326af80e86d0e9ce92bcc1e65c8ff88297de4fa14ee936cb2293d414c9ec63"}, 354 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:791492091744b0fe390a6ce85cc1bf5149968ac7d5f0477288f78c89b385d9af"}, 355 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0318c465786c1f63ac05d7c4dbcecd4d2d7e13f0959b01b534ea1e92202235c5"}, 356 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a513bd9c1551894ee3d31369f9b07460ef223694098cf27d399513415855b68"}, 357 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:91c6f5fc58df1e0a3cc0c3a717bb3308ff850abdaa6d2d802573ee2b11f674a8"}, 358 | {file = "numpy-1.21.1-cp38-cp38-win32.whl", hash = "sha256:978010b68e17150db8765355d1ccdd450f9fc916824e8c4e35ee620590e234cd"}, 359 | {file = "numpy-1.21.1-cp38-cp38-win_amd64.whl", hash = "sha256:9749a40a5b22333467f02fe11edc98f022133ee1bfa8ab99bda5e5437b831214"}, 360 | {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d7a4aeac3b94af92a9373d6e77b37691b86411f9745190d2c351f410ab3a791f"}, 361 | {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9e7912a56108aba9b31df688a4c4f5cb0d9d3787386b87d504762b6754fbb1b"}, 362 | {file = "numpy-1.21.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:25b40b98ebdd272bc3020935427a4530b7d60dfbe1ab9381a39147834e985eac"}, 363 | {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a92c5aea763d14ba9d6475803fc7904bda7decc2a0a68153f587ad82941fec1"}, 364 | {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05a0f648eb28bae4bcb204e6fd14603de2908de982e761a2fc78efe0f19e96e1"}, 365 | {file = "numpy-1.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f01f28075a92eede918b965e86e8f0ba7b7797a95aa8d35e1cc8821f5fc3ad6a"}, 366 | {file = "numpy-1.21.1-cp39-cp39-win32.whl", hash = "sha256:88c0b89ad1cc24a5efbb99ff9ab5db0f9a86e9cc50240177a571fbe9c2860ac2"}, 367 | {file = "numpy-1.21.1-cp39-cp39-win_amd64.whl", hash = "sha256:01721eefe70544d548425a07c80be8377096a54118070b8a62476866d5208e33"}, 368 | {file = "numpy-1.21.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d4d1de6e6fb3d28781c73fbde702ac97f03d79e4ffd6598b880b2d95d62ead4"}, 369 | {file = "numpy-1.21.1.zip", hash = "sha256:dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd"}, 370 | ] 371 | pandas = [ 372 | {file = "pandas-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68408a39a54ebadb9014ee5a4fae27b2fe524317bc80adf56c9ac59e8f8ea431"}, 373 | {file = "pandas-1.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86b16b1b920c4cb27fdd65a2c20258bcd9c794be491290660722bb0ea765054d"}, 374 | {file = "pandas-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:37d63e78e87eb3791da7be4100a65da0383670c2b59e493d9e73098d7a879226"}, 375 | {file = "pandas-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e2fb11f86f6253bb1df26e3aeab3bf2e000aaa32a953ec394571bec5dc6fd6"}, 376 | {file = "pandas-1.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7326b37de08d42dd3fff5b7ef7691d0fd0bf2428f4ba5a2bdc3b3247e9a52e4c"}, 377 | {file = "pandas-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2f29b4da6f6ae7c68f4b3708d9d9e59fa89b2f9e87c2b64ce055cbd39f729e"}, 378 | {file = "pandas-1.3.3-cp37-cp37m-win32.whl", hash = "sha256:3f5020613c1d8e304840c34aeb171377dc755521bf5e69804991030c2a48aec3"}, 379 | {file = "pandas-1.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c399200631db9bd9335d013ec7fce4edb98651035c249d532945c78ad453f23a"}, 380 | {file = "pandas-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a800df4e101b721e94d04c355e611863cc31887f24c0b019572e26518cbbcab6"}, 381 | {file = "pandas-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3334a5a9eeaca953b9db1b2b165dcdc5180b5011f3bec3a57a3580c9c22eae68"}, 382 | {file = "pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49fd2889d8116d7acef0709e4c82b8560a8b22b0f77471391d12c27596e90267"}, 383 | {file = "pandas-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7557b39c8e86eb0543a17a002ac1ea0f38911c3c17095bc9350d0a65b32d801c"}, 384 | {file = "pandas-1.3.3-cp38-cp38-win32.whl", hash = "sha256:629138b7cf81a2e55aa29ce7b04c1cece20485271d1f6c469c6a0c03857db6a4"}, 385 | {file = "pandas-1.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:45649503e167d45360aa7c52f18d1591a6d5c70d2f3a26bc90a3297a30ce9a66"}, 386 | {file = "pandas-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ebbed7312547a924df0cbe133ff1250eeb94cdff3c09a794dc991c5621c8c735"}, 387 | {file = "pandas-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9f1b54d7efc9df05320b14a48fb18686f781aa66cc7b47bb62fabfc67a0985c"}, 388 | {file = "pandas-1.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9bc59855598cb57f68fdabd4897d3ed2bc3a3b3bef7b868a0153c4cd03f3207"}, 389 | {file = "pandas-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4def2ef2fb7fcd62f2aa51bacb817ee9029e5c8efe42fe527ba21f6a3ddf1a9f"}, 390 | {file = "pandas-1.3.3-cp39-cp39-win32.whl", hash = "sha256:f7d84f321674c2f0f31887ee6d5755c54ca1ea5e144d6d54b3bbf566dd9ea0cc"}, 391 | {file = "pandas-1.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:e574c2637c9d27f322e911650b36e858c885702c5996eda8a5a60e35e6648cf2"}, 392 | {file = "pandas-1.3.3.tar.gz", hash = "sha256:272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df"}, 393 | ] 394 | pyproj = [ 395 | {file = "pyproj-3.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ce554616880ab59110af9baa2948b4442d2961e20390df00cea49782b7c779fe"}, 396 | {file = "pyproj-3.2.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:40ed2a66d93af811abac9fd2581685a2aade22a6753501f2f9760893ee6b0828"}, 397 | {file = "pyproj-3.2.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8e6821a472f03e3604413b562536e05cb7926c3bd85bfc423c88c4909871f692"}, 398 | {file = "pyproj-3.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a732342136fa57112de717109c2b853a4df3e4e2de56e42da7a2b61e67f0b29"}, 399 | {file = "pyproj-3.2.1-cp37-cp37m-win32.whl", hash = "sha256:b87eda8647d71f27ed81c43da9d8e0b841a403378b645e8dc1d015e9f5133ed1"}, 400 | {file = "pyproj-3.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f2eb0ee7e4183c1c4e2f450cccff09734b59ff929619bad3a4df97a87e3a3d1f"}, 401 | {file = "pyproj-3.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:76dd8a9dbd67a42e5ab8afe0e4a4167f0dfcd8f07e12541852c5289abf49e28f"}, 402 | {file = "pyproj-3.2.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b73973908688a0845ebd78871ed2edcca35d1fad8e90983a416a49aadb350f28"}, 403 | {file = "pyproj-3.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:00ec0cdd218cc8e7c823a9fe7c705b1e55926fe3a9460ef2048403757f9897ec"}, 404 | {file = "pyproj-3.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7d7097b969c7a3f114fcce379021e59c843c1c7b1b9b3f1bb2aa65019793800"}, 405 | {file = "pyproj-3.2.1-cp38-cp38-win32.whl", hash = "sha256:e61c34b1b5a6b8df2ecf5abdbf8dd69322001ebc1971d0897919e4004512c476"}, 406 | {file = "pyproj-3.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:50d312cb7610f93f02f07b7da5b96469c52645717bebe6530ac7214cc69c068e"}, 407 | {file = "pyproj-3.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:faadb5795e99321b5135263080348e184b927352c6331a06c2fcfe77a07ad215"}, 408 | {file = "pyproj-3.2.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:d355ddf4cb29e77cb38e152354fb6ef6796d699d37e1a67a2427890ce2341162"}, 409 | {file = "pyproj-3.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:28026ddf4d779e6bcbbd45954a0ca017348d819f27deb503e860be4eb88f5218"}, 410 | {file = "pyproj-3.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5fb6283da84be5dc909f3f681490fd43de1b3694e9b5bed1ca7bc875130cb93"}, 411 | {file = "pyproj-3.2.1-cp39-cp39-win32.whl", hash = "sha256:604e8041ee0a17eec0fac4e7e10b2f11f45ab49676a4f26eb63753ebb9ba38b0"}, 412 | {file = "pyproj-3.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:8cf6f7c62a7c4144771a330381198e53bff782c0345af623b8989b1913acb919"}, 413 | {file = "pyproj-3.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:19e6a7c6d31624b9971639036679fad35460045fd99c0c484899134b6bbf84cc"}, 414 | {file = "pyproj-3.2.1.tar.gz", hash = "sha256:4a936093825ff55b24c1fc6cc093541fcf6d0f6d406589ed699e62048ebf3877"}, 415 | ] 416 | python-dateutil = [ 417 | {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, 418 | {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, 419 | ] 420 | python-decouple = [ 421 | {file = "python-decouple-3.5.tar.gz", hash = "sha256:68e4b3fcc97e24bc90eecc514852d0bf970f4ff031f5f7a6728ddafa9afefcaf"}, 422 | ] 423 | pytz = [ 424 | {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"}, 425 | {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"}, 426 | ] 427 | requests = [ 428 | {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"}, 429 | {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"}, 430 | ] 431 | shapely = [ 432 | {file = "Shapely-1.7.1-1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:46da0ea527da9cf9503e66c18bab6981c5556859e518fe71578b47126e54ca93"}, 433 | {file = "Shapely-1.7.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4c10f317e379cc404f8fc510cd9982d5d3e7ba13a9cfd39aa251d894c6366798"}, 434 | {file = "Shapely-1.7.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:17df66e87d0fe0193910aeaa938c99f0b04f67b430edb8adae01e7be557b141b"}, 435 | {file = "Shapely-1.7.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:da38ed3d65b8091447dc3717e5218cc336d20303b77b0634b261bc5c1aa2bae8"}, 436 | {file = "Shapely-1.7.1-cp35-cp35m-win32.whl", hash = "sha256:8e7659dd994792a0aad8fb80439f59055a21163e236faf2f9823beb63a380e19"}, 437 | {file = "Shapely-1.7.1-cp35-cp35m-win_amd64.whl", hash = "sha256:791477edb422692e7dc351c5ed6530eb0e949a31b45569946619a0d9cd5f53cb"}, 438 | {file = "Shapely-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3afccf0437edc108eef1e2bb9cc4c7073e7705924eb4cd0bf7715cd1ef0ce1b"}, 439 | {file = "Shapely-1.7.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8f15b6ce67dcc05b61f19c689b60f3fe58550ba994290ff8332f711f5aaa9840"}, 440 | {file = "Shapely-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:60e5b2282619249dbe8dc5266d781cc7d7fb1b27fa49f8241f2167672ad26719"}, 441 | {file = "Shapely-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de618e67b64a51a0768d26a9963ecd7d338a2cf6e9e7582d2385f88ad005b3d1"}, 442 | {file = "Shapely-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:182716ffb500d114b5d1b75d7fd9d14b7d3414cef3c38c0490534cc9ce20981a"}, 443 | {file = "Shapely-1.7.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:4f3c59f6dbf86a9fc293546de492f5e07344e045f9333f3a753f2dda903c45d1"}, 444 | {file = "Shapely-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:6871acba8fbe744efa4f9f34e726d070bfbf9bffb356a8f6d64557846324232b"}, 445 | {file = "Shapely-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:35be1c5d869966569d3dfd4ec31832d7c780e9df760e1fe52131105685941891"}, 446 | {file = "Shapely-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:052eb5b9ba756808a7825e8a8020fb146ec489dd5c919e7d139014775411e688"}, 447 | {file = "Shapely-1.7.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:90a3e2ae0d6d7d50ff2370ba168fbd416a53e7d8448410758c5d6a5920646c1d"}, 448 | {file = "Shapely-1.7.1-cp38-cp38-win32.whl", hash = "sha256:a3774516c8a83abfd1ddffb8b6ec1b0935d7fe6ea0ff5c31a18bfdae567b4eba"}, 449 | {file = "Shapely-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:6593026cd3f5daaea12bcc51ae5c979318070fefee210e7990cb8ac2364e79a1"}, 450 | {file = "Shapely-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:617bf046a6861d7c6b44d2d9cb9e2311548638e684c2cd071d8945f24a926263"}, 451 | {file = "Shapely-1.7.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b40cc7bb089ae4aa9ddba1db900b4cd1bce3925d2a4b5837b639e49de054784f"}, 452 | {file = "Shapely-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2df5260d0f2983309776cb41bfa85c464ec07018d88c0ecfca23d40bfadae2f1"}, 453 | {file = "Shapely-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:a5c3a50d823c192f32615a2a6920e8c046b09e07a58eba220407335a9cd2e8ea"}, 454 | {file = "Shapely-1.7.1.tar.gz", hash = "sha256:1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129"}, 455 | ] 456 | six = [ 457 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 458 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 459 | ] 460 | urllib3 = [ 461 | {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"}, 462 | {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"}, 463 | ] 464 | "zope.interface" = [ 465 | {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"}, 466 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"}, 467 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"}, 468 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a"}, 469 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531"}, 470 | {file = "zope.interface-5.4.0-cp27-cp27m-win32.whl", hash = "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325"}, 471 | {file = "zope.interface-5.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155"}, 472 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263"}, 473 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959"}, 474 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e"}, 475 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c"}, 476 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702"}, 477 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f"}, 478 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05"}, 479 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004"}, 480 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117"}, 481 | {file = "zope.interface-5.4.0-cp35-cp35m-win32.whl", hash = "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8"}, 482 | {file = "zope.interface-5.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63"}, 483 | {file = "zope.interface-5.4.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f"}, 484 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920"}, 485 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46"}, 486 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc"}, 487 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9"}, 488 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2"}, 489 | {file = "zope.interface-5.4.0-cp36-cp36m-win32.whl", hash = "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78"}, 490 | {file = "zope.interface-5.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1"}, 491 | {file = "zope.interface-5.4.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e"}, 492 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b"}, 493 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f"}, 494 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d"}, 495 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8"}, 496 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf"}, 497 | {file = "zope.interface-5.4.0-cp37-cp37m-win32.whl", hash = "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7"}, 498 | {file = "zope.interface-5.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94"}, 499 | {file = "zope.interface-5.4.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3"}, 500 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e"}, 501 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7"}, 502 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120"}, 503 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48"}, 504 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4"}, 505 | {file = "zope.interface-5.4.0-cp38-cp38-win32.whl", hash = "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb"}, 506 | {file = "zope.interface-5.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54"}, 507 | {file = "zope.interface-5.4.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4"}, 508 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d"}, 509 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83"}, 510 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25"}, 511 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1"}, 512 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c"}, 513 | {file = "zope.interface-5.4.0-cp39-cp39-win32.whl", hash = "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e"}, 514 | {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"}, 515 | {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"}, 516 | ] 517 | -------------------------------------------------------------------------------- /Python/crossfire/pyproject.toml: -------------------------------------------------------------------------------- 1 | [tool.poetry] 2 | name = "crossfire" 3 | version = "0.1.1" 4 | description = "crossfire: Download spatial data sets from crossfire project" 5 | authors = ["Felipe Barros "] 6 | readme = "README.md" 7 | homepage = "https://fogocruzado.org.br/" 8 | repository = "https://github.com/voltdatalab/crossfire" 9 | classifiers = [ 10 | "Intended Audience :: Science/Research", 11 | "Intended Audience :: Developers", 12 | "Intended Audience :: Education", 13 | "Topic :: Scientific/Engineering :: GIS", 14 | "Topic :: Scientific/Engineering :: Visualization", 15 | "Programming Language :: Python", 16 | ] 17 | exclude = ["man/", "R/", "tables/", "crossfire.Rproj", "DESCRIPTION", "env-example", "Introducao_crossfire.md", 18 | "Introduction_crossfire.md", "NAMESPACE",] 19 | 20 | [tool.poetry.dependencies] 21 | python = "^3.9" 22 | requests = "^2.26.0" 23 | python-dateutil = "^2.8.2" 24 | DateTime = "^4.3" 25 | pandas = "^1.3.3" 26 | geopandas = "^0.10.1" 27 | 28 | [tool.poetry.dev-dependencies] 29 | python-decouple = "^3.5" 30 | 31 | [build-system] 32 | requires = ["poetry-core>=1.0.0"] 33 | build-backend = "poetry.core.masonry.api" 34 | -------------------------------------------------------------------------------- /Python/crossfire/tests/test_crossfire.py: -------------------------------------------------------------------------------- 1 | import os 2 | from datetime import date 3 | from unittest import TestCase 4 | 5 | import numpy 6 | from crossfire.fogocruzado_signin import fogocruzado_signin 7 | from crossfire.fogocruzado_utils import fogocruzado_key, extract_data_api, extract_cities_api 8 | from crossfire.get_cities import get_cities 9 | from crossfire.get_fogocruzado import get_fogocruzado 10 | from decouple import config 11 | from geopandas import GeoDataFrame 12 | from pandas import DataFrame 13 | 14 | 15 | class TestSuccessSignin(TestCase): 16 | def setUp(self): 17 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 18 | 19 | def test_fogocruzado_signin_environment_variable(self): 20 | """ 21 | assert the parameters passed to fogocruzado_signin enables FOGO_CRUZADO varibale 22 | in the environment 23 | """ 24 | self.assertTrue(os.environ["FOGO_CRUZADO_EMAIL"]) 25 | self.assertTrue(os.environ["FOGO_CRUZADO_PASSWORD"]) 26 | self.assertTrue(os.environ["FOGO_CRUZADO_API_TOKEN"]) 27 | 28 | 29 | class TestFogoCruzadoKey(TestCase): 30 | """ 31 | Asserts that with right environmental variables a key is returned from API 32 | """ 33 | 34 | def setUp(self): 35 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 36 | self.key = fogocruzado_key() 37 | 38 | def test_environmental_variable_is_not_none(self): 39 | self.assertIsNotNone(self.key) 40 | 41 | 42 | class TestExtractDataAPI(TestCase): 43 | def setUp(self): 44 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 45 | 46 | def test_extract_data_api(self): 47 | self.data = extract_data_api( 48 | link='https://api.fogocruzado.org.br/api/v1/occurrences?data_ocorrencia[gt]=2020-01-01&data_ocorrencia[lt]=2020-02-01' 49 | ) 50 | self.assertIsInstance(self.data, DataFrame) 51 | self.assertTrue(self.data is not None) 52 | 53 | 54 | class TestExtractCitiesAPI(TestCase): 55 | def setUp(self): 56 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 57 | 58 | def test_extract_cities_api(self): 59 | self.data = extract_cities_api() 60 | self.assertIsInstance(self.data, DataFrame) 61 | self.assertTrue(self.data is not None) 62 | 63 | 64 | class TestGetCitiesAPI(TestCase): 65 | def setUp(self): 66 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 67 | self.cities = get_cities() 68 | 69 | def test_extract_cities_api(self): 70 | self.assertIsInstance(self.cities, DataFrame) 71 | self.assertTrue(self.cities is not None) 72 | self.assertIsInstance(type(self.cities.DensidadeDemografica[0]), type(numpy.float64)) 73 | 74 | 75 | class TestGetFogoCruzado(TestCase): 76 | def setUp(self): 77 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 78 | 79 | def test_sucessful_get_fogocruzado(self): 80 | self.sucessful_get_fogocruzado = get_fogocruzado() 81 | self.assertIsInstance(self.sucessful_get_fogocruzado, GeoDataFrame) 82 | 83 | def test_unsucessful_get_fogocruzado(self): 84 | self.sucessful_get_fogocruzado = get_fogocruzado(initial_date=date(2020, 1, 1), final_date=date(2021, 10, 1)) 85 | self.assertFalse(self.sucessful_get_fogocruzado) 86 | 87 | 88 | class TestFilterCityFogoCruzado(TestCase): 89 | def setUp(self): 90 | fogocruzado_signin(config('FOGO_CRUZADO_EMAIL'), config('FOGO_CRUZADO_PASSWORD')) 91 | 92 | def test_sucessful_filter_city_from_string(self): 93 | self.sucessful_get_fogocruzado = get_fogocruzado(city="Rio de Janeiro") 94 | self.assertTrue( 95 | self.sucessful_get_fogocruzado.nome_cidade.unique()[0] == 'Rio de Janeiro' 96 | ) 97 | 98 | def test_sucessful_filter_city_from_list(self): 99 | self.sucessful_get_fogocruzado = get_fogocruzado(city=['Rio de Janeiro', 'Belford Roxo']) 100 | self.assertTrue( 101 | list(self.sucessful_get_fogocruzado.nome_cidade.unique()) == ['Rio de Janeiro', 'Belford Roxo'] 102 | ) 103 | 104 | def test_sucessful_filter_state_from_string(self): 105 | self.sucessful_get_fogocruzado = get_fogocruzado(state="RJ") 106 | self.assertTrue( 107 | self.sucessful_get_fogocruzado.uf_estado.unique()[0] == 'RJ' 108 | ) 109 | 110 | def test_sucessful_filter_state_from_list(self): 111 | self.sucessful_get_fogocruzado = get_fogocruzado(state=['RJ', 'PE']) 112 | self.assertTrue( 113 | list(self.sucessful_get_fogocruzado.uf_estado.unique()) == ['RJ', 'PE'] 114 | ) 115 | 116 | def test_sucessful_filter_security_agent_from_string(self): 117 | self.sucessful_get_fogocruzado = get_fogocruzado(security_agent=1) 118 | self.assertTrue( 119 | self.sucessful_get_fogocruzado.presen_agen_segur_ocorrencia.unique()[0] == 1 120 | ) 121 | 122 | def test_sucessful_filter_security_agent_from_list(self): 123 | self.sucessful_get_fogocruzado = get_fogocruzado(security_agent=[0, 1]) 124 | self.assertTrue( 125 | list(self.sucessful_get_fogocruzado.presen_agen_segur_ocorrencia.unique()) == [0, 1] 126 | ) -------------------------------------------------------------------------------- /R/fogocruzado_signin.R: -------------------------------------------------------------------------------- 1 | #' Retrieve a Fogo Cruzado's API token 2 | #' 3 | #' @description Sets Fogo Cruzado's user and password for the current 4 | #' R session, in order to require a token to use its API. See the details 5 | #' section for more information. 6 | #' 7 | #' @usage fogocruzado_signin(email, password) 8 | #' 9 | #' @param email e-mail which was registered to access Fogo Cruzado's API. 10 | #' @param password password which was registered to access Fogo Cruzado's API. 11 | #' 12 | #' @return Sets "FOGO_CRUZADO_EMAIL", "FOGO_CRUZADO_PASSWORD" and 13 | #' "FOGO_CRUZADO_API_TOKEN" as environment variables. 14 | #' 15 | #' @details Fogo Cruzado's API (\url{https://api.fogocruzado.org.br/}) allows easier 16 | #' access to Fogo Cruzado's data from shootings and fire gun shots recorded 17 | #' in Brazil. The API requires a token to be used. This token expires within 18 | #' an hour, after which it needs to be refreshed. Only registered users can 19 | #' require a token in the API. To register, users should access: 20 | #' \url{https://api.fogocruzado.org.br/register}. 21 | #' 22 | #' Once users are registered and have authorized access, they need to request 23 | #' a token to extract data using the API. This can be done using 24 | #' \code{fogocruzado_signin} function. Fogo Cruzado uses a JWT 25 | #' authentication standard to grant users access to the API. 26 | #' 27 | #' \code{fogocruzado_signin} function sets the API user (e-mail) and password 28 | #' only for the current R session. However, since the user and password are 29 | #' personal and private, we recommend a careful use of this function in 30 | #' R script files, so that users do not share these information. 31 | #' 32 | #' @export 33 | #' 34 | #' @author The function design was inspired by the \code{register_google()} 35 | #' function, from the \code{ggmap} package. 36 | #' 37 | #' @examples 38 | #' 39 | #' # this sets your email and password for the current session and retrieves a 40 | #' # Bearer token that lasts for 1 hour. If the current token is expired, this 41 | #' # function uses the information previously set to retrieve a new one. 42 | #' 43 | #' \dontrun{ 44 | #' fogocruzado_signin(email = "example@@email.com", password = "yourpassword") 45 | #' } 46 | #' 47 | 48 | fogocruzado_signin <- function(email, 49 | password){ 50 | 51 | Sys.setenv("FOGO_CRUZADO_EMAIL" = email, 52 | "FOGO_CRUZADO_PASSWORD" = password) 53 | 54 | get_token_fogocruzado() 55 | 56 | } 57 | 58 | 59 | 60 | 61 | 62 | -------------------------------------------------------------------------------- /R/get_cities.R: -------------------------------------------------------------------------------- 1 | #' Cities contained in Fogo Cruzado's API. 2 | #' 3 | #' \code{get_cities()} extracts data about cities covered by Fogo Cruzado's 4 | #' project, from its API (\url{https://api.fogocruzado.org.br/}). The function 5 | #' returns a \code{data.frame} where each observation corresponds to a city. 6 | #' 7 | #' @return A \code{data.frame} with the following variables: 8 | #' 9 | #' \itemize{ 10 | #' \item CidadeId: internal id number of the city where the occurrence 11 | #' happened. 12 | #' \item EstadoId: internal id number of the state where the occurrence 13 | #' happened. 14 | #' \item Cidade: city's name. 15 | #' \item CodigoIBGE: IBGE's (Brazilian Institute of Geography and 16 | #' Statistics) code for the city where the occurrence happened. 17 | #' \item Gentilico: city's gentilic. 18 | #' \item Populacao: city's population. 19 | #' \item Area: city's area. 20 | #' \item DensidadeDemografica: city's population density. 21 | #' \item PIBPrecoCorrente: city's gross domestic product. 22 | #' } 23 | #' 24 | #' @importFrom magrittr %>% 25 | #' @importFrom rlang .data 26 | #' 27 | #' @export 28 | #' 29 | #' @seealso \code{\link{get_fogocruzado}} \code{\link{fogocruzado_signin}} 30 | #' 31 | #' @examples 32 | #' # returns a data.frame with all cities contained in the data repository 33 | #' 34 | #' \dontrun{ 35 | #' cities <- get_cities() 36 | #' } 37 | 38 | get_cities <- function(){ 39 | 40 | banco <- extract_cities_api() 41 | 42 | if(!is.data.frame(banco)) { 43 | 44 | fogocruzado_signin() 45 | 46 | banco <- extract_cities_api() 47 | 48 | banco$DensidadeDemografica <- as.numeric(banco$DensidadeDemografica) 49 | 50 | } else 51 | 52 | banco$DensidadeDemografica <- as.numeric(banco$DensidadeDemografica) 53 | 54 | return(banco) 55 | } 56 | -------------------------------------------------------------------------------- /R/get_fogocruzado.R: -------------------------------------------------------------------------------- 1 | #' Extract data from Fogo Cruzado's API of shootings in Brazil. 2 | #' 3 | #' \code{get_fogocruzado()} extracts data from shootings and fire gun shots 4 | #' from Fogo Cruzado's API (\url{https://api.fogocruzado.org.br/}). 5 | #' The function returns a \code{data.frame} where each observation corresponds 6 | #' to an occurrence. 7 | #' 8 | #' @param city City (\code{character}). Filters observations to certain 9 | #' cities. Complete names of the cities included in the data can be found 10 | #' using the \code{\link{get_cities}} function. Default returns occurrences 11 | #' from all cities in the data repository. 12 | #' @param state State abbreviation in capital letters (\code{character}). 13 | #' Filters observations to contain only the selected state. Default returns 14 | #' occurrences from both states in the data repository. Can assume 2 values: 15 | #' "RJ" for occurrences in the state of Rio de Janeiro and "PE" for those 16 | #' of Pernambuco. 17 | #' @param initial_date initial date to filter occurrences starting from a certain day. 18 | #' \code{character} in the "YYYY-MM-DD" format. Default is set to six months from 19 | #' the current date. The difference betweet the final and the initial dates 20 | #' cannot be longer than 210 days (roughly 7 months). 21 | #' @param final_date final date to filter occurrences up until in a certain day. 22 | #' \code{character} in the "YYYY-MM-DD" format. Default is set for the current day 23 | #' \code{Sys.Date()}. The difference betweet the final and the initial dates 24 | #' cannot be longer than 210 days (roughly 7 months). 25 | #' @param security_agent Number (\code{integer}) indicating if the user wishes 26 | #' to filter observations according to the presence of security agents in 27 | #' the occurrence. Can assume the values of 1 for "yes" and 0 for "no". 28 | #' Default returns all occurrences. 29 | #' 30 | #' @return A \code{data.frame} with 67 columns. They are described \href{https://github.com/voltdatalab/crossfire/blob/master/tables/list_columns.md}{in English} 31 | #' and \href{https://github.com/voltdatalab/crossfire/blob/master/tables/lista_colunas.md}{in Portuguese}. 32 | #' 33 | #' @importFrom magrittr %>% 34 | #' @importFrom rlang .data 35 | #' 36 | #' @export 37 | #' 38 | #' @seealso \code{\link{get_cities}} \code{\link{fogocruzado_signin}} 39 | #' 40 | #' @examples 41 | #' # returns a data.frame with all occurrences in the data repository over the last 210 days 42 | #' 43 | #' \dontrun{ 44 | #' df <- get_fogocruzado() 45 | #' } 46 | #' 47 | #' # returns a data.frame with all occurrences in the city of Belford Roxo 48 | #' # starting in January 1st, 2017 and finishing in June 30th, 2017. 49 | #' 50 | #' \dontrun{ 51 | #' df <- get_fogocruzado(city = "Belford Roxo", initial_date = "2017-01-01", final_date = "2017-06-30") 52 | #' } 53 | 54 | get_fogocruzado <- function(city = NULL, 55 | initial_date = Sys.Date()-months(6), 56 | final_date = Sys.Date(), 57 | state = c("PE", "RJ"), 58 | security_agent = c(0:1)){ 59 | 60 | lifecycle::deprecate_warn("0.2.0", "crossfire::get_fogocruzado(source = )") 61 | lifecycle::deprecate_warn("0.2.0", "crossfire::get_fogocruzado(initial_date = 'must be within 210 days from final_date')") 62 | 63 | if(as.Date(final_date) - as.Date(initial_date) >= months(7)){ 64 | 65 | stop("The interval between the initial and final date cannot be longer than 210 days (7 months). Please check your inputs.") 66 | 67 | } else 68 | 69 | banco <- extract_data_api(link = paste0("https://api.fogocruzado.org.br/api/v1/occurrences?data_ocorrencia[gt]=", 70 | initial_date, "&data_ocorrencia[lt]=", final_date)) 71 | 72 | if(!is.data.frame(banco)) { 73 | 74 | get_token_fogocruzado() 75 | 76 | message("Renovating token...") 77 | 78 | banco <- extract_data_api(link = paste0("https://api.fogocruzado.org.br/api/v1/occurrences?data_ocorrencia[gt]=", 79 | initial_date, "&data_ocorrencia[lt]=", final_date)) 80 | 81 | } else 82 | 83 | banco$cod_ibge_cidade <- as.character(banco$cod_ibge_cidade) 84 | banco$cod_ibge_estado <- as.character(banco$cod_ibge_estado) 85 | banco$densidade_demo_cidade <- as.numeric(banco$densidade_demo_cidade) 86 | 87 | if(!is.null(city)){ 88 | 89 | banco <- banco %>% 90 | dplyr::filter(.data$nome_cidade %in% city, 91 | .data$uf_estado %in% state, 92 | .data$presen_agen_segur_ocorrencia %in% security_agent) 93 | 94 | } else 95 | 96 | banco <- banco %>% 97 | dplyr::filter(.data$uf_estado %in% state, 98 | .data$presen_agen_segur_ocorrencia %in% security_agent) 99 | 100 | return(banco) 101 | } 102 | 103 | 104 | -------------------------------------------------------------------------------- /R/utils.R: -------------------------------------------------------------------------------- 1 | # Get Fogo Cruzado's API from user and password informed in fogocruzado_signin() 2 | 3 | fogocruzado_key <- function (){ 4 | 5 | key <- Sys.getenv("FOGO_CRUZADO_API_TOKEN") 6 | 7 | if (key == "") { 8 | 9 | stop("There's no key available. Please check your sign-in information.\nIf you haven't included an authorized e-mail and password in this R session yet, please do so using the fogocruzado_signin() function") 10 | 11 | } else 12 | 13 | return(key) 14 | 15 | } 16 | 17 | # Get token from Fogo Cruzado's API 18 | 19 | get_token_fogocruzado <- function(){ 20 | 21 | post_fogocruzado <- httr::POST("https://api.fogocruzado.org.br/api/v1/auth/login", 22 | body = list(email = Sys.getenv("FOGO_CRUZADO_EMAIL"), 23 | password = Sys.getenv("FOGO_CRUZADO_PASSWORD"))) 24 | 25 | post_fogocruzado <- httr::content(post_fogocruzado, as = "text", encoding = "utf8") 26 | 27 | access_fogocruzado <- jsonlite::fromJSON(post_fogocruzado)[[1]] 28 | 29 | accesstoken_fogocruzado <- paste("Bearer", access_fogocruzado) 30 | 31 | if(access_fogocruzado != "Unauthorized"){ 32 | 33 | Sys.setenv("FOGO_CRUZADO_API_TOKEN" = accesstoken_fogocruzado) 34 | 35 | } else 36 | 37 | stop("These credentials do not correspond to Fogo Cruzado's records. \nPlease check your e-mail and password or access https://api.fogocruzado.org.br/register to register.") 38 | 39 | } 40 | 41 | # Extract data from occurrences in Fogo Cruzado's API 42 | 43 | extract_data_api <- function(link){ 44 | 45 | message("\nExtracting data from Fogo Cruzado's API.\n \n...\n") 46 | 47 | fogocruzado_request <- httr::GET(link, 48 | httr::add_headers(Authorization = fogocruzado_key())) 49 | 50 | fogocruzado_request_data <- httr::content(fogocruzado_request, as = "text", encoding = "utf8") 51 | 52 | banco <- jsonlite::fromJSON(fogocruzado_request_data) 53 | 54 | return(banco) 55 | 56 | } 57 | 58 | # Extract data from cities in Fogo Cruzado's API 59 | 60 | extract_cities_api <- function(){ 61 | 62 | message("\nExtracting data from Fogo Cruzado's API.\n \n...\n") 63 | 64 | fogocruzado_cities <- httr::GET("https://api.fogocruzado.org.br/api/v1/cities", 65 | httr::add_headers(Authorization = fogocruzado_key())) 66 | 67 | #Sys.sleep(1.0) 68 | 69 | fogocruzado_request_data <- httr::content(fogocruzado_cities, as = "text", encoding = "utf8") 70 | 71 | banco <- jsonlite::fromJSON(fogocruzado_request_data) 72 | 73 | return(banco) 74 | 75 | } 76 | 77 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | 2 | hexagon crossfire 3 | 4 | 5 | # crossfire 6 | 7 | `crossfire` is a package created to give easier access to the datasets of the project [Fogo Cruzado](https://fogocruzado.org.br/), which is a digital collaboration platform to register gun shootings in the metropolitan areas of Rio de Janeiro and Recife. 8 | 9 | The package facilitates data extraction from the [project open-data API](https://api.fogocruzado.org.br/), developed by [Volt Data Lab](https://www.voltdata.info/en-lg). 10 | 11 | **Please note that as of Nov. 2020, due to changes in Fogo Cruzado's API, user's should update `crossfire` to its' `0.2.0` version**. The `get_fogocruzado()` function from the `0.1.0` version returns errors and cannot be used. 12 | 13 | ## Installing and loading the package 14 | 15 | Currently, the `crossfire` package can be installed directly from its GitHub repository: 16 | 17 | ``` 18 | if (!require("devtools")) install.packages("devtools") 19 | devtools::install_github("voltdatalab/crossfire") 20 | 21 | library(crossfire) 22 | ``` 23 | 24 | ## Functions 25 | 26 | `crossfire` has 3 functions: `fogocruzado_signin`, `get_fogocruzado` and `get_cities`. 27 | 28 | * `fogocruzado_signin` is used to give access to Fogo Cruzado's API. To access Fogo Cruzado's API, [users should be registered](https://api.fogocruzado.org.br/register) and insert their e-mail and password for authentication. Thus, the function registers these information on the current R session, so that it can be used to obtain the Bearer token to extract data using the API. 29 | 30 | * `get_fogocruzado` extracts slices or the whole dataset of shootings registered by Fogo Cruzado. The function returns a data frame, in which each line corresponds to a shooting registered and its information. It can also filter the data according to some parameters, city/state - `city` and `state` -, initial and final date - `initial_date` and `final_date` -, and the presence of security forces - `security_agent`. One should note that each request using the `crossfire` package needs to be under a 210 days (roughly 7 months) time interval, from any portion of the full dataset. 31 | 32 | ``` 33 | # Extract data for all registered shootings 34 | fogocruzado_all <- get_fogocruzado() 35 | 36 | # Extract data for shootings in the cities of Rio de Janeiro and Recife in 2018 37 | fogocruzado_rj_recife <- get_fogocruzado(city = c("Rio de Janeiro", "Recife"), 38 | initial_date = "2018-07-01", final_date = "2018-12-31") 39 | 40 | # Extract data from occurents reported by the police and in which security agents were present 41 | fogocruzado_security <- get_fogocruzado(security_agent = 1, source = 2) 42 | ``` 43 | 44 | * `get_cities()` returns a `data.frame` with information about all cities from the Rio de Janeiro and Recife metropolitan areas covered by the Fogo Cruzado initiative. 45 | 46 | ## More information 47 | 48 | For more information on how the package works and for a complete list of functions, see the vignettes (in [English](https://github.com/voltdatalab/crossfire/blob/master/Introduction_crossfire.md) and [Portuguese](https://github.com/voltdatalab/crossfire/blob/master/Introducao_crossfire.md)). 49 | 50 | ## Authors 51 | 52 | [Lucas Gelape](https://github.com/lgelape), for [Volt Data Lab](https://www.voltdata.info/en-lg). 53 | 54 | ## Contributors 55 | 56 | [Sérgio Spagnuolo](https://github.com/voltdatalab) and [Denisson Silva](https://github.com/silvadenisson). 57 | -------------------------------------------------------------------------------- /crossfire.Rproj: -------------------------------------------------------------------------------- 1 | Version: 1.0 2 | 3 | RestoreWorkspace: Default 4 | SaveWorkspace: Default 5 | AlwaysSaveHistory: Default 6 | 7 | EnableCodeIndexing: Yes 8 | UseSpacesForTab: Yes 9 | NumSpacesForTab: 2 10 | Encoding: UTF-8 11 | 12 | RnwWeave: Sweave 13 | LaTeX: pdfLaTeX 14 | 15 | AutoAppendNewline: Yes 16 | StripTrailingWhitespace: Yes 17 | 18 | BuildType: Package 19 | PackageUseDevtools: Yes 20 | PackageInstallArgs: --no-multiarch --with-keep.source 21 | -------------------------------------------------------------------------------- /crossfire_hexagono.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/voltdatalab/crossfire/11f97877630073182050a4a4236103ef8fd1b14d/crossfire_hexagono.png -------------------------------------------------------------------------------- /env-example: -------------------------------------------------------------------------------- 1 | FOGO_CRUZADO_EMAIL=usuario@host.com 2 | FOGO_CRUZADO_PASSWORD=password -------------------------------------------------------------------------------- /man/fogocruzado_signin.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/fogocruzado_signin.R 3 | \name{fogocruzado_signin} 4 | \alias{fogocruzado_signin} 5 | \title{Retrieve a Fogo Cruzado's API token} 6 | \usage{ 7 | fogocruzado_signin(email, password) 8 | } 9 | \arguments{ 10 | \item{email}{e-mail which was registered to access Fogo Cruzado's API.} 11 | 12 | \item{password}{password which was registered to access Fogo Cruzado's API.} 13 | } 14 | \value{ 15 | Sets "FOGO_CRUZADO_EMAIL", "FOGO_CRUZADO_PASSWORD" and 16 | "FOGO_CRUZADO_API_TOKEN" as environment variables. 17 | } 18 | \description{ 19 | Sets Fogo Cruzado's user and password for the current 20 | R session, in order to require a token to use its API. See the details 21 | section for more information. 22 | } 23 | \details{ 24 | Fogo Cruzado's API (\url{https://api.fogocruzado.org.br/}) allows easier 25 | access to Fogo Cruzado's data from shootings and fire gun shots recorded 26 | in Brazil. The API requires a token to be used. This token expires within 27 | an hour, after which it needs to be refreshed. Only registered users can 28 | require a token in the API. To register, users should access: 29 | \url{https://api.fogocruzado.org.br/register}. 30 | 31 | Once users are registered and have authorized access, they need to request 32 | a token to extract data using the API. This can be done using 33 | \code{fogocruzado_signin} function. Fogo Cruzado uses a JWT 34 | authentication standard to grant users access to the API. 35 | 36 | \code{fogocruzado_signin} function sets the API user (e-mail) and password 37 | only for the current R session. However, since the user and password are 38 | personal and private, we recommend a careful use of this function in 39 | R script files, so that users do not share these information. 40 | } 41 | \examples{ 42 | 43 | # this sets your email and password for the current session and retrieves a 44 | # Bearer token that lasts for 1 hour. If the current token is expired, this 45 | # function uses the information previously set to retrieve a new one. 46 | 47 | \dontrun{ 48 | fogocruzado_signin(email = "example@email.com", password = "yourpassword") 49 | } 50 | 51 | } 52 | \author{ 53 | The function design was inspired by the \code{register_google()} 54 | function, from the \code{ggmap} package. 55 | } 56 | -------------------------------------------------------------------------------- /man/get_cities.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/get_cities.R 3 | \name{get_cities} 4 | \alias{get_cities} 5 | \title{Cities contained in Fogo Cruzado's API.} 6 | \usage{ 7 | get_cities() 8 | } 9 | \value{ 10 | A \code{data.frame} with the following variables: 11 | 12 | \itemize{ 13 | \item CidadeId: internal id number of the city where the occurrence 14 | happened. 15 | \item EstadoId: internal id number of the state where the occurrence 16 | happened. 17 | \item Cidade: city's name. 18 | \item CodigoIBGE: IBGE's (Brazilian Institute of Geography and 19 | Statistics) code for the city where the occurrence happened. 20 | \item Gentilico: city's gentilic. 21 | \item Populacao: city's population. 22 | \item Area: city's area. 23 | \item DensidadeDemografica: city's population density. 24 | \item PIBPrecoCorrente: city's gross domestic product. 25 | } 26 | } 27 | \description{ 28 | \code{get_cities()} extracts data about cities covered by Fogo Cruzado's 29 | project, from its API (\url{https://api.fogocruzado.org.br/}). The function 30 | returns a \code{data.frame} where each observation corresponds to a city. 31 | } 32 | \examples{ 33 | # returns a data.frame with all cities contained in the data repository 34 | 35 | \dontrun{ 36 | cities <- get_cities() 37 | } 38 | } 39 | \seealso{ 40 | \code{\link{get_fogocruzado}} \code{\link{fogocruzado_signin}} 41 | } 42 | -------------------------------------------------------------------------------- /man/get_fogocruzado.Rd: -------------------------------------------------------------------------------- 1 | % Generated by roxygen2: do not edit by hand 2 | % Please edit documentation in R/get_fogocruzado.R 3 | \name{get_fogocruzado} 4 | \alias{get_fogocruzado} 5 | \title{Extract data from Fogo Cruzado's API of shootings in Brazil.} 6 | \usage{ 7 | get_fogocruzado( 8 | city = NULL, 9 | initial_date = Sys.Date() - months(6), 10 | final_date = Sys.Date(), 11 | state = c("PE", "RJ"), 12 | security_agent = c(0:1) 13 | ) 14 | } 15 | \arguments{ 16 | \item{city}{City (\code{character}). Filters observations to certain 17 | cities. Complete names of the cities included in the data can be found 18 | using the \code{\link{get_cities}} function. Default returns occurrences 19 | from all cities in the data repository.} 20 | 21 | \item{initial_date}{initial date to filter occurrences starting from a certain day. 22 | \code{character} in the "YYYY-MM-DD" format. Default is set to six months from 23 | the current date. The difference betweet the final and the initial dates 24 | cannot be longer than 210 days (roughly 7 months).} 25 | 26 | \item{final_date}{final date to filter occurrences up until in a certain day. 27 | \code{character} in the "YYYY-MM-DD" format. Default is set for the current day 28 | \code{Sys.Date()}. The difference betweet the final and the initial dates 29 | cannot be longer than 210 days (roughly 7 months).} 30 | 31 | \item{state}{State abbreviation in capital letters (\code{character}). 32 | Filters observations to contain only the selected state. Default returns 33 | occurrences from both states in the data repository. Can assume 2 values: 34 | "RJ" for occurrences in the state of Rio de Janeiro and "PE" for those 35 | of Pernambuco.} 36 | 37 | \item{security_agent}{Number (\code{integer}) indicating if the user wishes 38 | to filter observations according to the presence of security agents in 39 | the occurrence. Can assume the values of 1 for "yes" and 0 for "no". 40 | Default returns all occurrences.} 41 | } 42 | \value{ 43 | A \code{data.frame} with 67 columns. They are described \href{https://github.com/voltdatalab/crossfire/blob/master/tables/list_columns.md}{in English} 44 | and \href{https://github.com/voltdatalab/crossfire/blob/master/tables/lista_colunas.md}{in Portuguese}. 45 | } 46 | \description{ 47 | \code{get_fogocruzado()} extracts data from shootings and fire gun shots 48 | from Fogo Cruzado's API (\url{https://api.fogocruzado.org.br/}). 49 | The function returns a \code{data.frame} where each observation corresponds 50 | to an occurrence. 51 | } 52 | \examples{ 53 | # returns a data.frame with all occurrences in the data repository over the last 210 days 54 | 55 | \dontrun{ 56 | df <- get_fogocruzado() 57 | } 58 | 59 | # returns a data.frame with all occurrences in the city of Belford Roxo 60 | # starting in January 1st, 2017 and finishing in June 30th, 2018. 61 | 62 | \dontrun{ 63 | df <- get_fogocruzado(city = "Belford Roxo", initial_date = "2017-01-01", final_date = "2018-06-31") 64 | } 65 | } 66 | \seealso{ 67 | \code{\link{get_cities}} \code{\link{fogocruzado_signin}} 68 | } 69 | -------------------------------------------------------------------------------- /poetry.lock: -------------------------------------------------------------------------------- 1 | [[package]] 2 | name = "attrs" 3 | version = "21.2.0" 4 | description = "Classes Without Boilerplate" 5 | category = "main" 6 | optional = false 7 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 8 | 9 | [package.extras] 10 | dev = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface", "furo", "sphinx", "sphinx-notfound-page", "pre-commit"] 11 | docs = ["furo", "sphinx", "zope.interface", "sphinx-notfound-page"] 12 | tests = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins", "zope.interface"] 13 | tests_no_zope = ["coverage[toml] (>=5.0.2)", "hypothesis", "pympler", "pytest (>=4.3.0)", "six", "mypy", "pytest-mypy-plugins"] 14 | 15 | [[package]] 16 | name = "certifi" 17 | version = "2021.10.8" 18 | description = "Python package for providing Mozilla's CA Bundle." 19 | category = "main" 20 | optional = false 21 | python-versions = "*" 22 | 23 | [[package]] 24 | name = "charset-normalizer" 25 | version = "2.0.6" 26 | description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." 27 | category = "main" 28 | optional = false 29 | python-versions = ">=3.5.0" 30 | 31 | [package.extras] 32 | unicode_backport = ["unicodedata2"] 33 | 34 | [[package]] 35 | name = "click" 36 | version = "8.0.3" 37 | description = "Composable command line interface toolkit" 38 | category = "main" 39 | optional = false 40 | python-versions = ">=3.6" 41 | 42 | [package.dependencies] 43 | colorama = {version = "*", markers = "platform_system == \"Windows\""} 44 | 45 | [[package]] 46 | name = "click-plugins" 47 | version = "1.1.1" 48 | description = "An extension module for click to enable registering CLI commands via setuptools entry-points." 49 | category = "main" 50 | optional = false 51 | python-versions = "*" 52 | 53 | [package.dependencies] 54 | click = ">=4.0" 55 | 56 | [package.extras] 57 | dev = ["pytest (>=3.6)", "pytest-cov", "wheel", "coveralls"] 58 | 59 | [[package]] 60 | name = "cligj" 61 | version = "0.7.2" 62 | description = "Click params for commmand line interfaces to GeoJSON" 63 | category = "main" 64 | optional = false 65 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, <4" 66 | 67 | [package.dependencies] 68 | click = ">=4.0" 69 | 70 | [package.extras] 71 | test = ["pytest-cov"] 72 | 73 | [[package]] 74 | name = "colorama" 75 | version = "0.4.4" 76 | description = "Cross-platform colored terminal text." 77 | category = "main" 78 | optional = false 79 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 80 | 81 | [[package]] 82 | name = "datetime" 83 | version = "4.3" 84 | description = "This package provides a DateTime data type, as known from Zope. Unless you need to communicate with Zope APIs, you're probably better off using Python's built-in datetime module." 85 | category = "main" 86 | optional = false 87 | python-versions = "*" 88 | 89 | [package.dependencies] 90 | pytz = "*" 91 | "zope.interface" = "*" 92 | 93 | [[package]] 94 | name = "fiona" 95 | version = "1.8.20" 96 | description = "Fiona reads and writes spatial data files" 97 | category = "main" 98 | optional = false 99 | python-versions = "*" 100 | 101 | [package.dependencies] 102 | attrs = ">=17" 103 | certifi = "*" 104 | click = ">=4.0" 105 | click-plugins = ">=1.0" 106 | cligj = ">=0.5" 107 | munch = "*" 108 | six = ">=1.7" 109 | 110 | [package.extras] 111 | all = ["pytest (>=3)", "boto3 (>=1.2.4)", "pytest-cov", "shapely", "mock"] 112 | calc = ["shapely"] 113 | s3 = ["boto3 (>=1.2.4)"] 114 | test = ["pytest (>=3)", "pytest-cov", "boto3 (>=1.2.4)", "mock"] 115 | 116 | [[package]] 117 | name = "geopandas" 118 | version = "0.10.1" 119 | description = "Geographic pandas extensions" 120 | category = "main" 121 | optional = false 122 | python-versions = ">=3.7" 123 | 124 | [package.dependencies] 125 | fiona = ">=1.8" 126 | pandas = ">=0.25.0" 127 | pyproj = ">=2.2.0" 128 | shapely = ">=1.6" 129 | 130 | [[package]] 131 | name = "idna" 132 | version = "3.2" 133 | description = "Internationalized Domain Names in Applications (IDNA)" 134 | category = "main" 135 | optional = false 136 | python-versions = ">=3.5" 137 | 138 | [[package]] 139 | name = "munch" 140 | version = "2.5.0" 141 | description = "A dot-accessible dictionary (a la JavaScript objects)" 142 | category = "main" 143 | optional = false 144 | python-versions = "*" 145 | 146 | [package.dependencies] 147 | six = "*" 148 | 149 | [package.extras] 150 | testing = ["pytest", "coverage", "astroid (>=1.5.3,<1.6.0)", "pylint (>=1.7.2,<1.8.0)", "astroid (>=2.0)", "pylint (>=2.3.1,<2.4.0)"] 151 | yaml = ["PyYAML (>=5.1.0)"] 152 | 153 | [[package]] 154 | name = "numpy" 155 | version = "1.21.1" 156 | description = "NumPy is the fundamental package for array computing with Python." 157 | category = "main" 158 | optional = false 159 | python-versions = ">=3.7" 160 | 161 | [[package]] 162 | name = "pandas" 163 | version = "1.3.3" 164 | description = "Powerful data structures for data analysis, time series, and statistics" 165 | category = "main" 166 | optional = false 167 | python-versions = ">=3.7.1" 168 | 169 | [package.dependencies] 170 | numpy = ">=1.17.3" 171 | python-dateutil = ">=2.7.3" 172 | pytz = ">=2017.3" 173 | 174 | [package.extras] 175 | test = ["hypothesis (>=3.58)", "pytest (>=6.0)", "pytest-xdist"] 176 | 177 | [[package]] 178 | name = "pyproj" 179 | version = "3.2.1" 180 | description = "Python interface to PROJ (cartographic projections and coordinate transformations library)" 181 | category = "main" 182 | optional = false 183 | python-versions = ">=3.7" 184 | 185 | [package.dependencies] 186 | certifi = "*" 187 | 188 | [[package]] 189 | name = "python-dateutil" 190 | version = "2.8.2" 191 | description = "Extensions to the standard Python datetime module" 192 | category = "main" 193 | optional = false 194 | python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,>=2.7" 195 | 196 | [package.dependencies] 197 | six = ">=1.5" 198 | 199 | [[package]] 200 | name = "python-decouple" 201 | version = "3.5" 202 | description = "Strict separation of settings from code." 203 | category = "main" 204 | optional = false 205 | python-versions = "*" 206 | 207 | [[package]] 208 | name = "pytz" 209 | version = "2021.3" 210 | description = "World timezone definitions, modern and historical" 211 | category = "main" 212 | optional = false 213 | python-versions = "*" 214 | 215 | [[package]] 216 | name = "requests" 217 | version = "2.26.0" 218 | description = "Python HTTP for Humans." 219 | category = "main" 220 | optional = false 221 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, !=3.5.*" 222 | 223 | [package.dependencies] 224 | certifi = ">=2017.4.17" 225 | charset-normalizer = {version = ">=2.0.0,<2.1.0", markers = "python_version >= \"3\""} 226 | idna = {version = ">=2.5,<4", markers = "python_version >= \"3\""} 227 | urllib3 = ">=1.21.1,<1.27" 228 | 229 | [package.extras] 230 | socks = ["PySocks (>=1.5.6,!=1.5.7)", "win-inet-pton"] 231 | use_chardet_on_py3 = ["chardet (>=3.0.2,<5)"] 232 | 233 | [[package]] 234 | name = "shapely" 235 | version = "1.7.1" 236 | description = "Geometric objects, predicates, and operations" 237 | category = "main" 238 | optional = false 239 | python-versions = "*" 240 | 241 | [package.extras] 242 | all = ["numpy", "pytest", "pytest-cov"] 243 | test = ["pytest", "pytest-cov"] 244 | vectorized = ["numpy"] 245 | 246 | [[package]] 247 | name = "six" 248 | version = "1.16.0" 249 | description = "Python 2 and 3 compatibility utilities" 250 | category = "main" 251 | optional = false 252 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*" 253 | 254 | [[package]] 255 | name = "urllib3" 256 | version = "1.26.7" 257 | description = "HTTP library with thread-safe connection pooling, file post, and more." 258 | category = "main" 259 | optional = false 260 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*, <4" 261 | 262 | [package.extras] 263 | brotli = ["brotlipy (>=0.6.0)"] 264 | secure = ["pyOpenSSL (>=0.14)", "cryptography (>=1.3.4)", "idna (>=2.0.0)", "certifi", "ipaddress"] 265 | socks = ["PySocks (>=1.5.6,!=1.5.7,<2.0)"] 266 | 267 | [[package]] 268 | name = "zope.interface" 269 | version = "5.4.0" 270 | description = "Interfaces for Python" 271 | category = "main" 272 | optional = false 273 | python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*, !=3.4.*" 274 | 275 | [package.extras] 276 | docs = ["sphinx", "repoze.sphinx.autointerface"] 277 | test = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] 278 | testing = ["coverage (>=5.0.3)", "zope.event", "zope.testing"] 279 | 280 | [metadata] 281 | lock-version = "1.1" 282 | python-versions = "^3.9" 283 | content-hash = "da84bff1e848615b5c48a48931ab20731fd64dc368ebb7ac0cbcdd345b4fa2f4" 284 | 285 | [metadata.files] 286 | attrs = [ 287 | {file = "attrs-21.2.0-py2.py3-none-any.whl", hash = "sha256:149e90d6d8ac20db7a955ad60cf0e6881a3f20d37096140088356da6c716b0b1"}, 288 | {file = "attrs-21.2.0.tar.gz", hash = "sha256:ef6aaac3ca6cd92904cdd0d83f629a15f18053ec84e6432106f7a4d04ae4f5fb"}, 289 | ] 290 | certifi = [ 291 | {file = "certifi-2021.10.8-py2.py3-none-any.whl", hash = "sha256:d62a0163eb4c2344ac042ab2bdf75399a71a2d8c7d47eac2e2ee91b9d6339569"}, 292 | {file = "certifi-2021.10.8.tar.gz", hash = "sha256:78884e7c1d4b00ce3cea67b44566851c4343c120abd683433ce934a68ea58872"}, 293 | ] 294 | charset-normalizer = [ 295 | {file = "charset-normalizer-2.0.6.tar.gz", hash = "sha256:5ec46d183433dcbd0ab716f2d7f29d8dee50505b3fdb40c6b985c7c4f5a3591f"}, 296 | {file = "charset_normalizer-2.0.6-py3-none-any.whl", hash = "sha256:5d209c0a931f215cee683b6445e2d77677e7e75e159f78def0db09d68fafcaa6"}, 297 | ] 298 | click = [ 299 | {file = "click-8.0.3-py3-none-any.whl", hash = "sha256:353f466495adaeb40b6b5f592f9f91cb22372351c84caeb068132442a4518ef3"}, 300 | {file = "click-8.0.3.tar.gz", hash = "sha256:410e932b050f5eed773c4cda94de75971c89cdb3155a72a0831139a79e5ecb5b"}, 301 | ] 302 | click-plugins = [ 303 | {file = "click-plugins-1.1.1.tar.gz", hash = "sha256:46ab999744a9d831159c3411bb0c79346d94a444df9a3a3742e9ed63645f264b"}, 304 | {file = "click_plugins-1.1.1-py2.py3-none-any.whl", hash = "sha256:5d262006d3222f5057fd81e1623d4443e41dcda5dc815c06b442aa3c02889fc8"}, 305 | ] 306 | cligj = [ 307 | {file = "cligj-0.7.2-py3-none-any.whl", hash = "sha256:c1ca117dbce1fe20a5809dc96f01e1c2840f6dcc939b3ddbb1111bf330ba82df"}, 308 | {file = "cligj-0.7.2.tar.gz", hash = "sha256:a4bc13d623356b373c2c27c53dbd9c68cae5d526270bfa71f6c6fa69669c6b27"}, 309 | ] 310 | colorama = [ 311 | {file = "colorama-0.4.4-py2.py3-none-any.whl", hash = "sha256:9f47eda37229f68eee03b24b9748937c7dc3868f906e8ba69fbcbdd3bc5dc3e2"}, 312 | {file = "colorama-0.4.4.tar.gz", hash = "sha256:5941b2b48a20143d2267e95b1c2a7603ce057ee39fd88e7329b0c292aa16869b"}, 313 | ] 314 | datetime = [ 315 | {file = "DateTime-4.3-py2.py3-none-any.whl", hash = "sha256:371dba07417b929a4fa685c2f7a3eaa6a62d60c02947831f97d4df9a9e70dfd0"}, 316 | {file = "DateTime-4.3.tar.gz", hash = "sha256:5cef605bab8259ff61281762cdf3290e459fbf0b4719951d5fab967d5f2ea0ea"}, 317 | ] 318 | fiona = [ 319 | {file = "Fiona-1.8.20-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:02880556540e36ad6aac97687799d9b3093c354787a47bc0e73026c7fc15f1b3"}, 320 | {file = "Fiona-1.8.20-cp36-cp36m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:3f668c471fa2f8c9c0a9ca83639cb2c8dcc93edc3d93d43dba2f9e8da38ad53e"}, 321 | {file = "Fiona-1.8.20-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:54f81039e913d0f88728ef23edf5a69038dec94dea54f4c799f972ba8e2a7d40"}, 322 | {file = "Fiona-1.8.20-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:328340a448bed5c43d119f61f760368a04d13a302c59d2fccb051a3ff021f4b8"}, 323 | {file = "Fiona-1.8.20-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:03f910380dbe684730b59b817aa030e6e9a3ee79211b66c6db2d1c8fe6ea12de"}, 324 | {file = "Fiona-1.8.20-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:bef100ebd82afb9a4d67096216e82611b82ca9341330e4805832d7ff8c9bc1f7"}, 325 | {file = "Fiona-1.8.20-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5e1cef608c6de9039eaa65b395024096e3189ab0559a5a328c68c4690c3302ce"}, 326 | {file = "Fiona-1.8.20-cp39-cp39-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:e72e4a5b84ec410be531d4fe4c1a5c87c6c0e92d01116c145c0f1b33f81c8080"}, 327 | {file = "Fiona-1.8.20.tar.gz", hash = "sha256:a70502d2857b82f749c09cb0dea3726787747933a2a1599b5ab787d74e3c143b"}, 328 | ] 329 | geopandas = [ 330 | {file = "geopandas-0.10.1-py2.py3-none-any.whl", hash = "sha256:9fce7062b5d2ca162d2b14c5a8d6f2a34a4158176214fafd683964df7444eb5e"}, 331 | {file = "geopandas-0.10.1.tar.gz", hash = "sha256:6429ee4e0cc94f26aff12139445196ef83fe17cadbe816925508a1799f60a681"}, 332 | ] 333 | idna = [ 334 | {file = "idna-3.2-py3-none-any.whl", hash = "sha256:14475042e284991034cb48e06f6851428fb14c4dc953acd9be9a5e95c7b6dd7a"}, 335 | {file = "idna-3.2.tar.gz", hash = "sha256:467fbad99067910785144ce333826c71fb0e63a425657295239737f7ecd125f3"}, 336 | ] 337 | munch = [ 338 | {file = "munch-2.5.0-py2.py3-none-any.whl", hash = "sha256:6f44af89a2ce4ed04ff8de41f70b226b984db10a91dcc7b9ac2efc1c77022fdd"}, 339 | {file = "munch-2.5.0.tar.gz", hash = "sha256:2d735f6f24d4dba3417fa448cae40c6e896ec1fdab6cdb5e6510999758a4dbd2"}, 340 | ] 341 | numpy = [ 342 | {file = "numpy-1.21.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:38e8648f9449a549a7dfe8d8755a5979b45b3538520d1e735637ef28e8c2dc50"}, 343 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:fd7d7409fa643a91d0a05c7554dd68aa9c9bb16e186f6ccfe40d6e003156e33a"}, 344 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:a75b4498b1e93d8b700282dc8e655b8bd559c0904b3910b144646dbbbc03e062"}, 345 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:1412aa0aec3e00bc23fbb8664d76552b4efde98fb71f60737c83efbac24112f1"}, 346 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:e46ceaff65609b5399163de5893d8f2a82d3c77d5e56d976c8b5fb01faa6b671"}, 347 | {file = "numpy-1.21.1-cp37-cp37m-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:c6a2324085dd52f96498419ba95b5777e40b6bcbc20088fddb9e8cbb58885e8e"}, 348 | {file = "numpy-1.21.1-cp37-cp37m-win32.whl", hash = "sha256:73101b2a1fef16602696d133db402a7e7586654682244344b8329cdcbbb82172"}, 349 | {file = "numpy-1.21.1-cp37-cp37m-win_amd64.whl", hash = "sha256:7a708a79c9a9d26904d1cca8d383bf869edf6f8e7650d85dbc77b041e8c5a0f8"}, 350 | {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_universal2.whl", hash = "sha256:95b995d0c413f5d0428b3f880e8fe1660ff9396dcd1f9eedbc311f37b5652e16"}, 351 | {file = "numpy-1.21.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:635e6bd31c9fb3d475c8f44a089569070d10a9ef18ed13738b03049280281267"}, 352 | {file = "numpy-1.21.1-cp38-cp38-macosx_11_0_arm64.whl", hash = "sha256:4a3d5fb89bfe21be2ef47c0614b9c9c707b7362386c9a3ff1feae63e0267ccb6"}, 353 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a326af80e86d0e9ce92bcc1e65c8ff88297de4fa14ee936cb2293d414c9ec63"}, 354 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:791492091744b0fe390a6ce85cc1bf5149968ac7d5f0477288f78c89b385d9af"}, 355 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:0318c465786c1f63ac05d7c4dbcecd4d2d7e13f0959b01b534ea1e92202235c5"}, 356 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9a513bd9c1551894ee3d31369f9b07460ef223694098cf27d399513415855b68"}, 357 | {file = "numpy-1.21.1-cp38-cp38-manylinux_2_5_x86_64.manylinux1_x86_64.whl", hash = "sha256:91c6f5fc58df1e0a3cc0c3a717bb3308ff850abdaa6d2d802573ee2b11f674a8"}, 358 | {file = "numpy-1.21.1-cp38-cp38-win32.whl", hash = "sha256:978010b68e17150db8765355d1ccdd450f9fc916824e8c4e35ee620590e234cd"}, 359 | {file = "numpy-1.21.1-cp38-cp38-win_amd64.whl", hash = "sha256:9749a40a5b22333467f02fe11edc98f022133ee1bfa8ab99bda5e5437b831214"}, 360 | {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_universal2.whl", hash = "sha256:d7a4aeac3b94af92a9373d6e77b37691b86411f9745190d2c351f410ab3a791f"}, 361 | {file = "numpy-1.21.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:d9e7912a56108aba9b31df688a4c4f5cb0d9d3787386b87d504762b6754fbb1b"}, 362 | {file = "numpy-1.21.1-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:25b40b98ebdd272bc3020935427a4530b7d60dfbe1ab9381a39147834e985eac"}, 363 | {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8a92c5aea763d14ba9d6475803fc7904bda7decc2a0a68153f587ad82941fec1"}, 364 | {file = "numpy-1.21.1-cp39-cp39-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:05a0f648eb28bae4bcb204e6fd14603de2908de982e761a2fc78efe0f19e96e1"}, 365 | {file = "numpy-1.21.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f01f28075a92eede918b965e86e8f0ba7b7797a95aa8d35e1cc8821f5fc3ad6a"}, 366 | {file = "numpy-1.21.1-cp39-cp39-win32.whl", hash = "sha256:88c0b89ad1cc24a5efbb99ff9ab5db0f9a86e9cc50240177a571fbe9c2860ac2"}, 367 | {file = "numpy-1.21.1-cp39-cp39-win_amd64.whl", hash = "sha256:01721eefe70544d548425a07c80be8377096a54118070b8a62476866d5208e33"}, 368 | {file = "numpy-1.21.1-pp37-pypy37_pp73-manylinux_2_12_x86_64.manylinux2010_x86_64.whl", hash = "sha256:2d4d1de6e6fb3d28781c73fbde702ac97f03d79e4ffd6598b880b2d95d62ead4"}, 369 | {file = "numpy-1.21.1.zip", hash = "sha256:dff4af63638afcc57a3dfb9e4b26d434a7a602d225b42d746ea7fe2edf1342fd"}, 370 | ] 371 | pandas = [ 372 | {file = "pandas-1.3.3-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:68408a39a54ebadb9014ee5a4fae27b2fe524317bc80adf56c9ac59e8f8ea431"}, 373 | {file = "pandas-1.3.3-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:86b16b1b920c4cb27fdd65a2c20258bcd9c794be491290660722bb0ea765054d"}, 374 | {file = "pandas-1.3.3-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:37d63e78e87eb3791da7be4100a65da0383670c2b59e493d9e73098d7a879226"}, 375 | {file = "pandas-1.3.3-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:53e2fb11f86f6253bb1df26e3aeab3bf2e000aaa32a953ec394571bec5dc6fd6"}, 376 | {file = "pandas-1.3.3-cp37-cp37m-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7326b37de08d42dd3fff5b7ef7691d0fd0bf2428f4ba5a2bdc3b3247e9a52e4c"}, 377 | {file = "pandas-1.3.3-cp37-cp37m-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:ed2f29b4da6f6ae7c68f4b3708d9d9e59fa89b2f9e87c2b64ce055cbd39f729e"}, 378 | {file = "pandas-1.3.3-cp37-cp37m-win32.whl", hash = "sha256:3f5020613c1d8e304840c34aeb171377dc755521bf5e69804991030c2a48aec3"}, 379 | {file = "pandas-1.3.3-cp37-cp37m-win_amd64.whl", hash = "sha256:c399200631db9bd9335d013ec7fce4edb98651035c249d532945c78ad453f23a"}, 380 | {file = "pandas-1.3.3-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:a800df4e101b721e94d04c355e611863cc31887f24c0b019572e26518cbbcab6"}, 381 | {file = "pandas-1.3.3-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3334a5a9eeaca953b9db1b2b165dcdc5180b5011f3bec3a57a3580c9c22eae68"}, 382 | {file = "pandas-1.3.3-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:49fd2889d8116d7acef0709e4c82b8560a8b22b0f77471391d12c27596e90267"}, 383 | {file = "pandas-1.3.3-cp38-cp38-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:7557b39c8e86eb0543a17a002ac1ea0f38911c3c17095bc9350d0a65b32d801c"}, 384 | {file = "pandas-1.3.3-cp38-cp38-win32.whl", hash = "sha256:629138b7cf81a2e55aa29ce7b04c1cece20485271d1f6c469c6a0c03857db6a4"}, 385 | {file = "pandas-1.3.3-cp38-cp38-win_amd64.whl", hash = "sha256:45649503e167d45360aa7c52f18d1591a6d5c70d2f3a26bc90a3297a30ce9a66"}, 386 | {file = "pandas-1.3.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:ebbed7312547a924df0cbe133ff1250eeb94cdff3c09a794dc991c5621c8c735"}, 387 | {file = "pandas-1.3.3-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:a9f1b54d7efc9df05320b14a48fb18686f781aa66cc7b47bb62fabfc67a0985c"}, 388 | {file = "pandas-1.3.3-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:e9bc59855598cb57f68fdabd4897d3ed2bc3a3b3bef7b868a0153c4cd03f3207"}, 389 | {file = "pandas-1.3.3-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.manylinux_2_17_i686.manylinux2014_i686.whl", hash = "sha256:4def2ef2fb7fcd62f2aa51bacb817ee9029e5c8efe42fe527ba21f6a3ddf1a9f"}, 390 | {file = "pandas-1.3.3-cp39-cp39-win32.whl", hash = "sha256:f7d84f321674c2f0f31887ee6d5755c54ca1ea5e144d6d54b3bbf566dd9ea0cc"}, 391 | {file = "pandas-1.3.3-cp39-cp39-win_amd64.whl", hash = "sha256:e574c2637c9d27f322e911650b36e858c885702c5996eda8a5a60e35e6648cf2"}, 392 | {file = "pandas-1.3.3.tar.gz", hash = "sha256:272c8cb14aa9793eada6b1ebe81994616e647b5892a370c7135efb2924b701df"}, 393 | ] 394 | pyproj = [ 395 | {file = "pyproj-3.2.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:ce554616880ab59110af9baa2948b4442d2961e20390df00cea49782b7c779fe"}, 396 | {file = "pyproj-3.2.1-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:40ed2a66d93af811abac9fd2581685a2aade22a6753501f2f9760893ee6b0828"}, 397 | {file = "pyproj-3.2.1-cp37-cp37m-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:8e6821a472f03e3604413b562536e05cb7926c3bd85bfc423c88c4909871f692"}, 398 | {file = "pyproj-3.2.1-cp37-cp37m-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8a732342136fa57112de717109c2b853a4df3e4e2de56e42da7a2b61e67f0b29"}, 399 | {file = "pyproj-3.2.1-cp37-cp37m-win32.whl", hash = "sha256:b87eda8647d71f27ed81c43da9d8e0b841a403378b645e8dc1d015e9f5133ed1"}, 400 | {file = "pyproj-3.2.1-cp37-cp37m-win_amd64.whl", hash = "sha256:f2eb0ee7e4183c1c4e2f450cccff09734b59ff929619bad3a4df97a87e3a3d1f"}, 401 | {file = "pyproj-3.2.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:76dd8a9dbd67a42e5ab8afe0e4a4167f0dfcd8f07e12541852c5289abf49e28f"}, 402 | {file = "pyproj-3.2.1-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:b73973908688a0845ebd78871ed2edcca35d1fad8e90983a416a49aadb350f28"}, 403 | {file = "pyproj-3.2.1-cp38-cp38-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:00ec0cdd218cc8e7c823a9fe7c705b1e55926fe3a9460ef2048403757f9897ec"}, 404 | {file = "pyproj-3.2.1-cp38-cp38-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c7d7097b969c7a3f114fcce379021e59c843c1c7b1b9b3f1bb2aa65019793800"}, 405 | {file = "pyproj-3.2.1-cp38-cp38-win32.whl", hash = "sha256:e61c34b1b5a6b8df2ecf5abdbf8dd69322001ebc1971d0897919e4004512c476"}, 406 | {file = "pyproj-3.2.1-cp38-cp38-win_amd64.whl", hash = "sha256:50d312cb7610f93f02f07b7da5b96469c52645717bebe6530ac7214cc69c068e"}, 407 | {file = "pyproj-3.2.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:faadb5795e99321b5135263080348e184b927352c6331a06c2fcfe77a07ad215"}, 408 | {file = "pyproj-3.2.1-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:d355ddf4cb29e77cb38e152354fb6ef6796d699d37e1a67a2427890ce2341162"}, 409 | {file = "pyproj-3.2.1-cp39-cp39-manylinux_2_12_i686.manylinux2010_i686.whl", hash = "sha256:28026ddf4d779e6bcbbd45954a0ca017348d819f27deb503e860be4eb88f5218"}, 410 | {file = "pyproj-3.2.1-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:c5fb6283da84be5dc909f3f681490fd43de1b3694e9b5bed1ca7bc875130cb93"}, 411 | {file = "pyproj-3.2.1-cp39-cp39-win32.whl", hash = "sha256:604e8041ee0a17eec0fac4e7e10b2f11f45ab49676a4f26eb63753ebb9ba38b0"}, 412 | {file = "pyproj-3.2.1-cp39-cp39-win_amd64.whl", hash = "sha256:8cf6f7c62a7c4144771a330381198e53bff782c0345af623b8989b1913acb919"}, 413 | {file = "pyproj-3.2.1-pp37-pypy37_pp73-win_amd64.whl", hash = "sha256:19e6a7c6d31624b9971639036679fad35460045fd99c0c484899134b6bbf84cc"}, 414 | {file = "pyproj-3.2.1.tar.gz", hash = "sha256:4a936093825ff55b24c1fc6cc093541fcf6d0f6d406589ed699e62048ebf3877"}, 415 | ] 416 | python-dateutil = [ 417 | {file = "python-dateutil-2.8.2.tar.gz", hash = "sha256:0123cacc1627ae19ddf3c27a5de5bd67ee4586fbdd6440d9748f8abb483d3e86"}, 418 | {file = "python_dateutil-2.8.2-py2.py3-none-any.whl", hash = "sha256:961d03dc3453ebbc59dbdea9e4e11c5651520a876d0f4db161e8674aae935da9"}, 419 | ] 420 | python-decouple = [ 421 | {file = "python-decouple-3.5.tar.gz", hash = "sha256:68e4b3fcc97e24bc90eecc514852d0bf970f4ff031f5f7a6728ddafa9afefcaf"}, 422 | ] 423 | pytz = [ 424 | {file = "pytz-2021.3-py2.py3-none-any.whl", hash = "sha256:3672058bc3453457b622aab7a1c3bfd5ab0bdae451512f6cf25f64ed37f5b87c"}, 425 | {file = "pytz-2021.3.tar.gz", hash = "sha256:acad2d8b20a1af07d4e4c9d2e9285c5ed9104354062f275f3fcd88dcef4f1326"}, 426 | ] 427 | requests = [ 428 | {file = "requests-2.26.0-py2.py3-none-any.whl", hash = "sha256:6c1246513ecd5ecd4528a0906f910e8f0f9c6b8ec72030dc9fd154dc1a6efd24"}, 429 | {file = "requests-2.26.0.tar.gz", hash = "sha256:b8aa58f8cf793ffd8782d3d8cb19e66ef36f7aba4353eec859e74678b01b07a7"}, 430 | ] 431 | shapely = [ 432 | {file = "Shapely-1.7.1-1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:46da0ea527da9cf9503e66c18bab6981c5556859e518fe71578b47126e54ca93"}, 433 | {file = "Shapely-1.7.1-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:4c10f317e379cc404f8fc510cd9982d5d3e7ba13a9cfd39aa251d894c6366798"}, 434 | {file = "Shapely-1.7.1-cp35-cp35m-macosx_10_6_intel.whl", hash = "sha256:17df66e87d0fe0193910aeaa938c99f0b04f67b430edb8adae01e7be557b141b"}, 435 | {file = "Shapely-1.7.1-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:da38ed3d65b8091447dc3717e5218cc336d20303b77b0634b261bc5c1aa2bae8"}, 436 | {file = "Shapely-1.7.1-cp35-cp35m-win32.whl", hash = "sha256:8e7659dd994792a0aad8fb80439f59055a21163e236faf2f9823beb63a380e19"}, 437 | {file = "Shapely-1.7.1-cp35-cp35m-win_amd64.whl", hash = "sha256:791477edb422692e7dc351c5ed6530eb0e949a31b45569946619a0d9cd5f53cb"}, 438 | {file = "Shapely-1.7.1-cp36-cp36m-macosx_10_9_x86_64.whl", hash = "sha256:e3afccf0437edc108eef1e2bb9cc4c7073e7705924eb4cd0bf7715cd1ef0ce1b"}, 439 | {file = "Shapely-1.7.1-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:8f15b6ce67dcc05b61f19c689b60f3fe58550ba994290ff8332f711f5aaa9840"}, 440 | {file = "Shapely-1.7.1-cp36-cp36m-win32.whl", hash = "sha256:60e5b2282619249dbe8dc5266d781cc7d7fb1b27fa49f8241f2167672ad26719"}, 441 | {file = "Shapely-1.7.1-cp36-cp36m-win_amd64.whl", hash = "sha256:de618e67b64a51a0768d26a9963ecd7d338a2cf6e9e7582d2385f88ad005b3d1"}, 442 | {file = "Shapely-1.7.1-cp37-cp37m-macosx_10_9_x86_64.whl", hash = "sha256:182716ffb500d114b5d1b75d7fd9d14b7d3414cef3c38c0490534cc9ce20981a"}, 443 | {file = "Shapely-1.7.1-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:4f3c59f6dbf86a9fc293546de492f5e07344e045f9333f3a753f2dda903c45d1"}, 444 | {file = "Shapely-1.7.1-cp37-cp37m-win32.whl", hash = "sha256:6871acba8fbe744efa4f9f34e726d070bfbf9bffb356a8f6d64557846324232b"}, 445 | {file = "Shapely-1.7.1-cp37-cp37m-win_amd64.whl", hash = "sha256:35be1c5d869966569d3dfd4ec31832d7c780e9df760e1fe52131105685941891"}, 446 | {file = "Shapely-1.7.1-cp38-cp38-macosx_10_9_x86_64.whl", hash = "sha256:052eb5b9ba756808a7825e8a8020fb146ec489dd5c919e7d139014775411e688"}, 447 | {file = "Shapely-1.7.1-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:90a3e2ae0d6d7d50ff2370ba168fbd416a53e7d8448410758c5d6a5920646c1d"}, 448 | {file = "Shapely-1.7.1-cp38-cp38-win32.whl", hash = "sha256:a3774516c8a83abfd1ddffb8b6ec1b0935d7fe6ea0ff5c31a18bfdae567b4eba"}, 449 | {file = "Shapely-1.7.1-cp38-cp38-win_amd64.whl", hash = "sha256:6593026cd3f5daaea12bcc51ae5c979318070fefee210e7990cb8ac2364e79a1"}, 450 | {file = "Shapely-1.7.1-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:617bf046a6861d7c6b44d2d9cb9e2311548638e684c2cd071d8945f24a926263"}, 451 | {file = "Shapely-1.7.1-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:b40cc7bb089ae4aa9ddba1db900b4cd1bce3925d2a4b5837b639e49de054784f"}, 452 | {file = "Shapely-1.7.1-cp39-cp39-win32.whl", hash = "sha256:2df5260d0f2983309776cb41bfa85c464ec07018d88c0ecfca23d40bfadae2f1"}, 453 | {file = "Shapely-1.7.1-cp39-cp39-win_amd64.whl", hash = "sha256:a5c3a50d823c192f32615a2a6920e8c046b09e07a58eba220407335a9cd2e8ea"}, 454 | {file = "Shapely-1.7.1.tar.gz", hash = "sha256:1641724c1055459a7e2b8bbe47ba25bdc89554582e62aec23cb3f3ca25f9b129"}, 455 | ] 456 | six = [ 457 | {file = "six-1.16.0-py2.py3-none-any.whl", hash = "sha256:8abb2f1d86890a2dfb989f9a77cfcfd3e47c2a354b01111771326f8aa26e0254"}, 458 | {file = "six-1.16.0.tar.gz", hash = "sha256:1e61c37477a1626458e36f7b1d82aa5c9b094fa4802892072e49de9c60c4c926"}, 459 | ] 460 | urllib3 = [ 461 | {file = "urllib3-1.26.7-py2.py3-none-any.whl", hash = "sha256:c4fdf4019605b6e5423637e01bc9fe4daef873709a7973e195ceba0a62bbc844"}, 462 | {file = "urllib3-1.26.7.tar.gz", hash = "sha256:4987c65554f7a2dbf30c18fd48778ef124af6fab771a377103da0585e2336ece"}, 463 | ] 464 | "zope.interface" = [ 465 | {file = "zope.interface-5.4.0-cp27-cp27m-macosx_10_14_x86_64.whl", hash = "sha256:7df1e1c05304f26faa49fa752a8c690126cf98b40b91d54e6e9cc3b7d6ffe8b7"}, 466 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_i686.whl", hash = "sha256:2c98384b254b37ce50eddd55db8d381a5c53b4c10ee66e1e7fe749824f894021"}, 467 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux1_x86_64.whl", hash = "sha256:08f9636e99a9d5410181ba0729e0408d3d8748026ea938f3b970a0249daa8192"}, 468 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_i686.whl", hash = "sha256:0ea1d73b7c9dcbc5080bb8aaffb776f1c68e807767069b9ccdd06f27a161914a"}, 469 | {file = "zope.interface-5.4.0-cp27-cp27m-manylinux2010_x86_64.whl", hash = "sha256:273f158fabc5ea33cbc936da0ab3d4ba80ede5351babc4f577d768e057651531"}, 470 | {file = "zope.interface-5.4.0-cp27-cp27m-win32.whl", hash = "sha256:a1e6e96217a0f72e2b8629e271e1b280c6fa3fe6e59fa8f6701bec14e3354325"}, 471 | {file = "zope.interface-5.4.0-cp27-cp27m-win_amd64.whl", hash = "sha256:877473e675fdcc113c138813a5dd440da0769a2d81f4d86614e5d62b69497155"}, 472 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_i686.whl", hash = "sha256:f7ee479e96f7ee350db1cf24afa5685a5899e2b34992fb99e1f7c1b0b758d263"}, 473 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux1_x86_64.whl", hash = "sha256:b0297b1e05fd128d26cc2460c810d42e205d16d76799526dfa8c8ccd50e74959"}, 474 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_i686.whl", hash = "sha256:af310ec8335016b5e52cae60cda4a4f2a60a788cbb949a4fbea13d441aa5a09e"}, 475 | {file = "zope.interface-5.4.0-cp27-cp27mu-manylinux2010_x86_64.whl", hash = "sha256:9a9845c4c6bb56e508651f005c4aeb0404e518c6f000d5a1123ab077ab769f5c"}, 476 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_i686.whl", hash = "sha256:0b465ae0962d49c68aa9733ba92a001b2a0933c317780435f00be7ecb959c702"}, 477 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux1_x86_64.whl", hash = "sha256:5dd9ca406499444f4c8299f803d4a14edf7890ecc595c8b1c7115c2342cadc5f"}, 478 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_i686.whl", hash = "sha256:469e2407e0fe9880ac690a3666f03eb4c3c444411a5a5fddfdabc5d184a79f05"}, 479 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2010_x86_64.whl", hash = "sha256:52de7fc6c21b419078008f697fd4103dbc763288b1406b4562554bd47514c004"}, 480 | {file = "zope.interface-5.4.0-cp35-cp35m-manylinux2014_aarch64.whl", hash = "sha256:3dd4952748521205697bc2802e4afac5ed4b02909bb799ba1fe239f77fd4e117"}, 481 | {file = "zope.interface-5.4.0-cp35-cp35m-win32.whl", hash = "sha256:dd93ea5c0c7f3e25335ab7d22a507b1dc43976e1345508f845efc573d3d779d8"}, 482 | {file = "zope.interface-5.4.0-cp35-cp35m-win_amd64.whl", hash = "sha256:3748fac0d0f6a304e674955ab1365d515993b3a0a865e16a11ec9d86fb307f63"}, 483 | {file = "zope.interface-5.4.0-cp36-cp36m-macosx_10_14_x86_64.whl", hash = "sha256:66c0061c91b3b9cf542131148ef7ecbecb2690d48d1612ec386de9d36766058f"}, 484 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_i686.whl", hash = "sha256:d0c1bc2fa9a7285719e5678584f6b92572a5b639d0e471bb8d4b650a1a910920"}, 485 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux1_x86_64.whl", hash = "sha256:2876246527c91e101184f63ccd1d716ec9c46519cc5f3d5375a3351c46467c46"}, 486 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_i686.whl", hash = "sha256:334701327f37c47fa628fc8b8d28c7d7730ce7daaf4bda1efb741679c2b087fc"}, 487 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2010_x86_64.whl", hash = "sha256:71aace0c42d53abe6fc7f726c5d3b60d90f3c5c055a447950ad6ea9cec2e37d9"}, 488 | {file = "zope.interface-5.4.0-cp36-cp36m-manylinux2014_aarch64.whl", hash = "sha256:5bb3489b4558e49ad2c5118137cfeaf59434f9737fa9c5deefc72d22c23822e2"}, 489 | {file = "zope.interface-5.4.0-cp36-cp36m-win32.whl", hash = "sha256:1c0e316c9add0db48a5b703833881351444398b04111188069a26a61cfb4df78"}, 490 | {file = "zope.interface-5.4.0-cp36-cp36m-win_amd64.whl", hash = "sha256:6f0c02cbb9691b7c91d5009108f975f8ffeab5dff8f26d62e21c493060eff2a1"}, 491 | {file = "zope.interface-5.4.0-cp37-cp37m-macosx_10_14_x86_64.whl", hash = "sha256:7d97a4306898b05404a0dcdc32d9709b7d8832c0c542b861d9a826301719794e"}, 492 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_i686.whl", hash = "sha256:867a5ad16892bf20e6c4ea2aab1971f45645ff3102ad29bd84c86027fa99997b"}, 493 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux1_x86_64.whl", hash = "sha256:5f931a1c21dfa7a9c573ec1f50a31135ccce84e32507c54e1ea404894c5eb96f"}, 494 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_i686.whl", hash = "sha256:194d0bcb1374ac3e1e023961610dc8f2c78a0f5f634d0c737691e215569e640d"}, 495 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2010_x86_64.whl", hash = "sha256:8270252effc60b9642b423189a2fe90eb6b59e87cbee54549db3f5562ff8d1b8"}, 496 | {file = "zope.interface-5.4.0-cp37-cp37m-manylinux2014_aarch64.whl", hash = "sha256:15e7d1f7a6ee16572e21e3576d2012b2778cbacf75eb4b7400be37455f5ca8bf"}, 497 | {file = "zope.interface-5.4.0-cp37-cp37m-win32.whl", hash = "sha256:8892f89999ffd992208754851e5a052f6b5db70a1e3f7d54b17c5211e37a98c7"}, 498 | {file = "zope.interface-5.4.0-cp37-cp37m-win_amd64.whl", hash = "sha256:2e5a26f16503be6c826abca904e45f1a44ff275fdb7e9d1b75c10671c26f8b94"}, 499 | {file = "zope.interface-5.4.0-cp38-cp38-macosx_10_14_x86_64.whl", hash = "sha256:0f91b5b948686659a8e28b728ff5e74b1be6bf40cb04704453617e5f1e945ef3"}, 500 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_i686.whl", hash = "sha256:4de4bc9b6d35c5af65b454d3e9bc98c50eb3960d5a3762c9438df57427134b8e"}, 501 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux1_x86_64.whl", hash = "sha256:bf68f4b2b6683e52bec69273562df15af352e5ed25d1b6641e7efddc5951d1a7"}, 502 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_i686.whl", hash = "sha256:63b82bb63de7c821428d513607e84c6d97d58afd1fe2eb645030bdc185440120"}, 503 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux2010_x86_64.whl", hash = "sha256:db1fa631737dab9fa0b37f3979d8d2631e348c3b4e8325d6873c2541d0ae5a48"}, 504 | {file = "zope.interface-5.4.0-cp38-cp38-manylinux2014_aarch64.whl", hash = "sha256:f44e517131a98f7a76696a7b21b164bcb85291cee106a23beccce454e1f433a4"}, 505 | {file = "zope.interface-5.4.0-cp38-cp38-win32.whl", hash = "sha256:a9506a7e80bcf6eacfff7f804c0ad5350c8c95b9010e4356a4b36f5322f09abb"}, 506 | {file = "zope.interface-5.4.0-cp38-cp38-win_amd64.whl", hash = "sha256:3c02411a3b62668200910090a0dff17c0b25aaa36145082a5a6adf08fa281e54"}, 507 | {file = "zope.interface-5.4.0-cp39-cp39-macosx_10_14_x86_64.whl", hash = "sha256:0cee5187b60ed26d56eb2960136288ce91bcf61e2a9405660d271d1f122a69a4"}, 508 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_i686.whl", hash = "sha256:a8156e6a7f5e2a0ff0c5b21d6bcb45145efece1909efcbbbf48c56f8da68221d"}, 509 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux1_x86_64.whl", hash = "sha256:205e40ccde0f37496904572035deea747390a8b7dc65146d30b96e2dd1359a83"}, 510 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_i686.whl", hash = "sha256:3f24df7124c323fceb53ff6168da70dbfbae1442b4f3da439cd441681f54fe25"}, 511 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux2010_x86_64.whl", hash = "sha256:5208ebd5152e040640518a77827bdfcc73773a15a33d6644015b763b9c9febc1"}, 512 | {file = "zope.interface-5.4.0-cp39-cp39-manylinux2014_aarch64.whl", hash = "sha256:17776ecd3a1fdd2b2cd5373e5ef8b307162f581c693575ec62e7c5399d80794c"}, 513 | {file = "zope.interface-5.4.0-cp39-cp39-win32.whl", hash = "sha256:d4d9d6c1a455d4babd320203b918ccc7fcbefe308615c521062bc2ba1aa4d26e"}, 514 | {file = "zope.interface-5.4.0-cp39-cp39-win_amd64.whl", hash = "sha256:0cba8477e300d64a11a9789ed40ee8932b59f9ee05f85276dbb4b59acee5dd09"}, 515 | {file = "zope.interface-5.4.0.tar.gz", hash = "sha256:5dba5f530fec3f0988d83b78cc591b58c0b6eb8431a85edd1569a0539a8a5a0e"}, 516 | ] 517 | -------------------------------------------------------------------------------- /tables/list_columns.md: -------------------------------------------------------------------------------- 1 | # Occurrences - columns names and description 2 | 3 | In the following table, the user can find a description for each column of the API request from the `get_fogocruzado` function. 4 | 5 | | | COLUMN | DESCRIPTION | 6 | |:---:|:---------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:| 7 | | 1 | id\_ocorrencia | Occurrence's ID | 8 | | 2 | local\_ocorrencia | Occurrence's address | 9 | | 3 | latitude\_ocorrencia | Occurrence's latitude | 10 | | 4 | longitude\_ocorrencia | Occurrence's longitude | 11 | | 5 | data\_ocorrencia | Occurrence's date | 12 | | 6 | hora\_ocorrencia | Occurrence's time | 13 | | 7 | presen\_agen\_segur\_ocorrencia | Shows if there were or security forces in the area or not at the occurrence | 14 | | 8 | qtd\_morto\_civil\_ocorrencia | N. of civilians killed in the occurence | 15 | | 9 | qtd\_morto\_agen\_segur\_ocorrencia | N. of security forces personnel killed in the occurence | 16 | | 10 | qtd\_ferido\_civil\_ocorrencia | N. of civilians injured in the occurrence | 17 | | 11 | qtd\_ferido\_agen\_segur\_ocorrencia | N. of security forces personnel injured in the occurence | 18 | | 12 | estado\_id | State's ID | 19 | | 13 | cidade\_id | Municipality's ID | 20 | | 14 | nome\_cidade | Municipality's name | 21 | | 15 | cod\_ibge\_cidade | Municipality's IBGE code | 22 | | 16 | gentilico\_cidade | Municipality's gentilic | 23 | | 17 | populacao\_cidade | Municipality's population | 24 | | 18 | area\_cidade | Municipality's area | 25 | | 19 | densidade\_demo\_cidade | Municipality's population density | 26 | | 20 | nome\_estado | State's name | 27 | | 21 | uf\_estado | State's name abbreviation | 28 | | 22 | cod\_ibge\_estado | State's IBGE code | 29 | | 23 | homem\_qtd\_mortos\_oc | N. of men killed | 30 | | 24 | homem\_qtd\_feridos\_oc | N. of men injured | 31 | | 25 | mulher\_qtd\_mortos\_oc | N. of women killed | 32 | | 26 | mulher\_qtd\_feridos\_oc | N. of women injured | 33 | | 27 | chacina\_oc | Is the occurrence related to a slaughter ("chacina")? | 34 | | 28 | chacina\_qtd\_mortos\_oc | N. of civilians killed in the slaughter ("chacina") | 35 | | 29 | chacina\_unidades\_policiais\_oc | N. of police units involved in the slaughter ("chacina"), if there are any | 36 | | 30 | ag\_seguranca\_vitima\_oc | Whether any security forces agents were shot | 37 | | 31 | ag\_seguranca\_mortos\_status\_oc | Whether the security forces killed were on duty, out of service or retired/fired | 38 | | 32 | ag\_seguranca\_feridos\_status\_oc | Whether the security forces injured were on duty, out of service or retired/fired | 39 | | 33 | bala\_perdida\_oc | Is the occurrence related to a stray bullet case? | 40 | | 34 | bala\_perdida\_qtd\_mortos\_oc | N. of people killed by this stray bullet case | 41 | | 35 | bala\_perdida\_qtd\_feridos\_oc | N. of people injured by this stray bullet case | 42 | | 36 | interior\_residencia\_oc | Were the gunfires shot inside houses or in backyards? Were they shot from outside the house but hit inside them? | 43 | | 37 | interior\_residencia\_qtd\_mortos\_oc | N. of people killed by gunfires inside residences | 44 | | 38 | interior\_residencia\_qtd\_feridos\_oc | N. of people injured by gunfires inside residences | 45 | | 39 | imediacao\_ensino\_oc | Were the gunfires shot from inside educational units (day care centers, schools and universities) or in their surroundings. | 46 | | 40 | imediacao\_ensino\_qtd\_mortos\_oc | N. of people killed in educational units or their surroundings. | 47 | | 41 | imediacao\_ensino\_qtd\_feridos\_oc | N. of people injured in educational units or their surroundings. | 48 | | 42 | vitima\_crianca\_oc | Were there any children (0 to 12 incomplete years old) among the people who were shot? | 49 | | 43 | vitima\_crianca\_qtd\_mortos\_oc | N. of children killed | 50 | | 44 | info\_adicional\_crianca\_morto | Other characteristics from the occurrence in which the victim was shot | 51 | | 45 | vitima\_crianca\_qtd\_feridos\_oc | N. of children injured | 52 | | 46 | info\_adicional\_crianca\_ferido | Other characteristics from the occurrence in which the injured victim was shot | 53 | | 47 | vitima\_adolescente\_oc | Were there any teenagers (12 to 18 incomplete years old) among the people who were shot? | 54 | | 48 | vitima\_adolescente\_qtd\_mortos\_oc | N. of teenagers killed | 55 | | 49 | info\_adicional\_adolescente\_morto | Other characteristics from the occurrence in which the victim was shot | 56 | | 50 | vitima\_adolescente\_qtd\_feridos\_oc | N. of teenagers injured | 57 | | 51 | info\_adicional\_adolescente\_ferido | Other characteristics from the occurrence in which the injured victim was shot | 58 | | 52 | vitima\_idoso\_oc | Were there any elderly people (over 60 years old) among the people who were shot? | 59 | | 53 | vitima\_idoso\_qtd\_mortos\_oc | N. of elderly killed | 60 | | 54 | info\_adicional\_idoso\_morto | Other characteristics from the occurrence in which the victim was shot | 61 | | 55 | vitima\_idoso\_qtd\_feridos\_oc | N. of elderly injured | 62 | | 56 | info\_adicional\_idoso\_ferido\_oc | Other characteristics from the occurrence in which the injured victim was shot | 63 | | 57 | informacao\_transporte\_oc | Was there a full interruption or partial suspension on the circulation of public transportation? | 64 | | 58 | descricao\_transporte\_interrompido\_oc | Name of the public transportation which was suspended | 65 | | 59 | data\_interrupcao\_transporte\_oc | Time of the interruption | 66 | | 60 | data\_liberacao\_transporte\_oc | Time when the services where restarted | 67 | | 61 | informacao\_via\_oc | Was there a full interruption or partial suspension on the circulation of streets? | 68 | | 62 | descricao\_via\_interrompida\_oc | Name of the street which was closed | 69 | | 63 | data\_interrupcao\_via\_oc | Time of the interruption | 70 | | 64 | data\_liberacao\_via\_oc | Time when the services where restarted | 71 | | 65 | outros\_recortes | Others - List of cases' categorizations, which are followed by Fogo Cruzado's staff, which do not have specific columns | 72 | | 66 | motivo\_principal | Probable reason for the gunshots - based on information from the press, police or trustworthy sources | 73 | | 67 | motivo\_complementar | Probable reason for the gunshots (if there's more than one) - based on information from the press, police or trustworthy sources | 74 | -------------------------------------------------------------------------------- /tables/lista_colunas.md: -------------------------------------------------------------------------------- 1 | # Ocorrências - nomes e descrição das colunas 2 | 3 | Na tabela abaixo, estão os nomes e descrição das colunas obtidas na requisição produzida pela função `get_fogocruzado`. 4 | 5 | | | COLUNA | DESCRIÇÃO | 6 | |:---:|:---------------------------------------:|:----------------------------------------------------------------------------------------------------------------------------------------------------------------:| 7 | | 1 | id\_ocorrencia | Id do registro | 8 | | 2 | local\_ocorrencia | Endereço da ocorrência | 9 | | 3 | latitude\_ocorrencia | Latitude da ocorrência | 10 | | 4 | longitude\_ocorrencia | Longitude da ocorrência | 11 | | 5 | data\_ocorrencia | Data da ocorrência | 12 | | 6 | hora\_ocorrencia | Hora da ocorrência | 13 | | 7 | presen\_agen\_segur\_ocorrencia | Indicador se havia ou não presença de agentes de segurança no local | 14 | | 8 | qtd\_morto\_civil\_ocorrencia | Quantidade de civis mortos na ocorrência | 15 | | 9 | qtd\_morto\_agen\_segur\_ocorrencia | Quantidade de agentes de segurança mortos na ocorrência | 16 | | 10 | qtd\_ferido\_civil\_ocorrencia | Quantidade de civis feridos na ocorrência | 17 | | 11 | qtd\_ferido\_agen\_segur\_ocorrencia | Quantidade de agentes de segurança feridos na ocorrência | 18 | | 12 | estado\_id | Identificação do estado | 19 | | 13 | cidade\_id | Identificação da cidade | 20 | | 14 | nome\_cidade | Nome da cidade | 21 | | 15 | cod\_ibge\_cidade | Código da cidade | 22 | | 16 | gentilico\_cidade | Gentílico da cidade | 23 | | 17 | populacao\_cidade | População da cidade | 24 | | 18 | area\_cidade | Área da cidade | 25 | | 19 | densidade\_demo\_cidade | Densidade demográfica da cidade | 26 | | 20 | nome\_estado | Nome do estado | 27 | | 21 | uf\_estado | Acrônimo do Estado | 28 | | 22 | cod\_ibge\_estado | Código do estado | 29 | | 23 | homem\_qtd\_mortos\_oc | Quantidade de homens mortos | 30 | | 24 | homem\_qtd\_feridos\_oc | Quantidade de homens feridos | 31 | | 25 | mulher\_qtd\_mortos\_oc | Quantidade de mulheres mortas | 32 | | 26 | mulher\_qtd\_feridos\_oc | Quantidade de mulheres feridas | 33 | | 27 | chacina\_oc | Indicador se ocorrência está relacionada a caso de chacina | 34 | | 28 | chacina\_qtd\_mortos\_oc | Quantidade de civis mortos na chacina | 35 | | 29 | chacina\_unidades\_policiais\_oc | Unidades policiais envolvidas na ocorrência da chacina (quando houver) | 36 | | 30 | ag\_seguranca\_vitima\_oc | Indicador de agentes de segurança baleados | 37 | | 31 | ag\_seguranca\_mortos\_status\_oc | Indicador se a vítima estava em serviço, fora de serviço ou aposentada/exonerada | 38 | | 32 | ag\_seguranca\_feridos\_status\_oc | Indicador se a vítima estava em serviço, fora de serviço ou aposentada/exonerada | 39 | | 33 | bala\_perdida\_oc | Indicador se ocorrência está relacionada a caso de bala perdida | 40 | | 34 | bala\_perdida\_qtd\_mortos\_oc | Quantidade de pessoas mortas por bala perdida | 41 | | 35 | bala\_perdida\_qtd\_feridos\_oc | Quantidade de pessoas feridas por bala perdida | 42 | | 36 | interior\_residencia\_oc | Indicador de disparos de arma de fogo dentro de residências ou quintais. Ou ainda registros de tiros fora de residências, mas que atinjam o interior das mesmas. | 43 | | 37 | interior\_residencia\_qtd\_mortos\_oc | Quantidade de pessoas mortas por arma de fogo dentro de residências | 44 | | 38 | interior\_residencia\_qtd\_feridos\_oc | Quantidade de pessoas feridas por arma de fogo dentro de residências | 45 | | 39 | imediacao\_ensino\_oc | Indicador de disparos de arma de fogo dentro de unidades de ensino (creches, escolas e universidades), ou nas suas imediações. | 46 | | 40 | imediacao\_ensino\_qtd\_mortos\_oc | Quantidade de pessoas mortas em unidades de ensino ou no seu entorno | 47 | | 41 | imediacao\_ensino\_qtd\_feridos\_oc | Quantidade de pessoas feridas em unidades de ensino ou no seu entorno | 48 | | 42 | vitima\_crianca\_oc | Indicador da existência de crianças (0 a 12 anos incompletos), entre os baleados | 49 | | 43 | vitima\_crianca\_qtd\_mortos\_oc | Quantidade de crianças mortas | 50 | | 44 | info\_adicional\_crianca\_morto | Indicador de características adicionais da ocasião em que a vítima foi alvejada | 51 | | 45 | vitima\_crianca\_qtd\_feridos\_oc | Quantidade de crianças feridas | 52 | | 46 | info\_adicional\_crianca\_ferido | Indicador de características adicionais da ocasião em que a vítima foi alvejada | 53 | | 47 | vitima\_adolescente\_oc | Indicador da existência de adolescentes (12 a 18 anos incompletos), entre os baleados | 54 | | 48 | vitima\_adolescente\_qtd\_mortos\_oc | Quantidade de adolescentes mortos | 55 | | 49 | info\_adicional\_adolescente\_morto | Indicador de características adicionais da ocasião em que a vítima foi alvejada | 56 | | 50 | vitima\_adolescente\_qtd\_feridos\_oc | Quantidade de adolescentes feridos | 57 | | 51 | info\_adicional\_adolescente\_ferido | Indicador de características adicionais da ocasião em que a vítima foi alvejada | 58 | | 52 | vitima\_idoso\_oc | Indicador da existência de idosos (a partir de 60 anos), entre os baleados | 59 | | 53 | vitima\_idoso\_qtd\_mortos\_oc | Quantidade de idosos mortos | 60 | | 54 | info\_adicional\_idoso\_morto | Indicador de características adicionais da ocasião em que a vítima foi alvejada | 61 | | 55 | vitima\_idoso\_qtd\_feridos\_oc | Quantidade de idosos feridos | 62 | | 56 | info\_adicional\_idoso\_ferido\_oc | Indicador de características adicionais da ocasião em que a vítima foi alvejada | 63 | | 57 | informacao\_transporte\_oc | Indicador de interrupção ou suspensão parcial da circulação de serviços de transporte | 64 | | 58 | descricao\_transporte\_interrompido\_oc | Nome do meio de transporte interrompido e ramal (quando cabível) | 65 | | 59 | data\_interrupcao\_transporte\_oc | Horário de interrupção | 66 | | 60 | data\_liberacao\_transporte\_oc | Horário de liberação | 67 | | 61 | informacao\_via\_oc | Indicador de interrupção ou suspensão parcial da circulação em vias públicas | 68 | | 62 | descricao\_via\_interrompida\_oc | Nome da via pública interrompida | 69 | | 63 | data\_interrupcao\_via\_oc | Horário de interrupção | 70 | | 64 | data\_liberacao\_via\_oc | Horário de liberação | 71 | | 65 | outros\_recortes | lista de classificações de casos acompanhados pela equipe que não possuem campos específicos, chamados internamente de recortes | 72 | | 66 | motivo\_principal | motivo provável dos tiros - baseados em informações de imprensa, polícia ou fontes confiáveis | 73 | | 67 | motivo\_complementar | motivo provável dos tiros (caso haja mais de um) - baseados em informações de imprensa, polícia ou fontes confiáveis | 74 | 75 | --------------------------------------------------------------------------------