Project "CityBikes_05"

Location: C:\Users\pinizzot\Documents\Easymorph\CityBikes\CityBikes_05.morph

Embedded Connectors

The project doesn't have embedded connectors.

Shared Connectors

The project uses the following shared connectors:

1. CityBikes (Web Location)

SettingValue
Base URLhttp://api.citybik.es/v2/networks
Authentication typeNone
Request timeout100 seconds
Use throttling (per project)No
Handle HTTP 429 (too many requests) automaticallyNo
Use proxyNo

Request headers to set in every request:

Header nameValue
Retry-After15

Modules

The project consists of 1 module.

Module: Main

The module requires 1 source of data:

  1. Undocumented data source

It doesn't export any data.

The module creates 5 tables that are later transformed using 20 actions.

Parameters

The module has the following parameters:

ParameterTypeValueLabelNote
Network-idText or number/valenbisi

Table: "Data from API"

Step 1: Send an HTTP GET request to shared Web Location connector CityBikes, path {Network-id}. Parse automatically the JSON or XML response into a tabular dataset.

Step 2: Remove columns where all values are empty values.

Step 3 (Disabled): Remove columns where all values are the same.

Table: "Company"

Step 1: Take table "Data from API"

Step 2: Keep 6 columns:

  • network.id
  • network.company{*}
  • network.location.city
  • network.location.country
  • network.location.latitude
  • network.location.longitude

Step 3: Unpivot table. Move column labels into [Labels] and column data to [Data] for all columns.

Step 4: Remove rows with the following values in column [Data]:

  • <empty>

Step 5: Create a matrix table with [Labels] as column name and Any of [Data] as data.

Table: "Tabular Data"

Step 1: Take table "Company"

Step 2: Create a table with all possible combinations of rows in this table and "Data from API". Merge all columns.

Table: "Case station.uid in"

Step 1: Derive table from "Tabular Data" if condition below is TRUE for any row. Otherwise, return empty dataset and skip all actions in the derived table. If the condition has a field reference but the table is empty then run anyway.

columnexists('network.stations{*}.extra.uid')

Step 2: Remove 1 column:

  • network.company{*}

Step 3: Remove all duplicating rows looking at values in all columns

Step 4: Remove rows with the following values in column [network.stations{*}.extra.uid]:

  • <empty>

Step 5: Remove columns where all values are empty or whitespace.

Table: "Case stations.uid off"

Step 1: Derive table from "Tabular Data" if condition below is TRUE for any row. Otherwise, return empty dataset and skip all actions in the derived table. If the condition has a field reference but the table is empty then run anyway.

not columnexists('network.stations{*}.extra.uid')

Step 2: Keep/remove columns

Column [network.company{*}] not found in the input table.

Step 3: Remove all duplicating rows looking at values in all columns

Step 4: Remove rows with the following values in column [network.stations{*}.id]:

  • <empty>

Step 5: Remove columns where all values are empty or whitespace.