| title | Import Curb Ramp Data into the TDEI | |||
|---|---|---|---|---|
| tags |
|
This tutorial explains how to convert an existing curb ramp point dataset to OpenSidewalks (OSW) format and upload it to the TDEI Portal as a new dataset.
For a list of all guides on the TCAT Wiki, refer to the Guides List.{ .guides-list-ref }
Before you begin, you will need:
- A TDEI Portal account. Refer to the TDEI Portal Account Registration Guide if you do not have one already.
- A modern web browser (such as Chrome, Firefox, Edge, or Safari) — required for the browser-based conversion tool in Step 2.
!!! example "Python Alternative"
If you prefer to work via the command line, a Python script equivalent to the browser tool is provided in the **Python** tab of [Step 2](#step-2-convert-to-osw-format). It requires **Python 3.8+** and the **`pyproj`** package.
Download your curb ramp dataset from your city or agency's open data portal as a GeoJSON file.
The Seattle Department of Transportation (SDOT) curb ramps dataset is used as a working example, though the conversion process provided in this tutorial can be adapted for curb ramp data from any source.
-
Open the SDOT Curb Ramps dataset on the Seattle Open Data Portal.
-
Under the Access this Data section, choose the GeoJSON format from the list of download options.
-
Save the file to a convenient location on your device, with a name such as
curb_ramps.geojson.
??? question "Download not working?"
If an _"Up to date download file is being generated. Please check back again later."_ or similar message appears after selecting the download button, simply wait for some time then **Refresh** (++f5++) the page. Depending on the size of the dataset, this part of the process may take anywhere from only a few seconds up to an hour or more.


!!! info "Using a different dataset?"
As long as your source data is a GeoJSON file with point geometries, the conversion process in the next step can be adapted for any city. Expand the **Dataset & field mapping** section in the tool to edit the field names.
=== "In-Browser Converter"
Use this browser-based converter below. Nothing else required — everything runs locally in your browser.
<iframe src="convert-curb-ramps/" style="width: 100%; height: 1400px; border: 1px solid var(--md-default-fg-color--lightest); border-radius: 6px;"></iframe>
1. Select your GeoJSON file using the file picker or by dragging it onto the upload area.
2. The **Dataset & field mapping** section is pre-configured for the SDOT Curb Ramps dataset. If you are using a different source, expand it and update the field names and coordinate system to match your source data.
3. Select **Convert to OSW**, then **Save OSW ZIP** once conversion is complete.
=== "Python"
Download [**`convert-curb-ramps.py`**](convert-curb-ramps/convert-curb-ramps.py){ download="convert-curb-ramps.py" } or expand the "View Source" section below, copy the script into a new text file named **`convert-curb-ramps.py`**, and save it in the same folder as your downloaded GeoJSON file.
??? example "View Source: Curb Ramp Point Conversion Python Script"
```python title="convert-curb-ramps.py"
--8<-- "docs/tdei/portal/tutorial/convert-curb-ramps/convert-curb-ramps.py"
```
This requires **Python 3.8+** and the **`pyproj`** package to be installed (`pip install pyproj`).
**Run the script** by opening a terminal (Command Prompt or PowerShell on Windows; Terminal on macOS/Linux), navigating to the folder containing your files, and running:
```ps
python convert-curb-ramps.py curb_ramps.geojson
```
Replace `curb_ramps.geojson` with the actual name of the file you downloaded in Step 1.
You can optionally provide a custom output path as a second argument:
```
python convert-curb-ramps.py curb_ramps.geojson my-output.zip
```
The script prints progress and produces a `.zip` file in the same folder:
```
Reading curb_ramps.geojson ...
46,174 features found
45,814 converted, 360 skipped (missing geometry, ID, or duplicate)
Writing curb_ramps-osw.zip ...
Done.
Output : curb_ramps-osw.zip
Inner file : curb_ramps.nodes.geojson
Features : 45,814
```


!!! warning "Adapt the script for your dataset!"
Open `convert-curb-ramps.py` in a text editor and look for the **CONFIGURATION** section near the top of the file. Update `EXT_FIELDS` to map your dataset's field names, change `ID_FIELD` and `RAMP_WIDTH_FIELD` as needed, update `DATA_SOURCE_NAME` and `DATA_SOURCE_LICENSE` to reflect your source, and set `SOURCE_CRS` to the EPSG code of your data's coordinate system (or `None` if it is already in WGS84).
Before uploading, it is recommended to validate the converted file using the TDEI Portal's OSW - Validate job. While not required, this confirms the file is schema-compliant and catches any issues before upload.
-
Log in to the TDEI Portal.
-
Navigate to Jobs and select Create Job.
-
Set Job Type to OSW - Validate, upload your
.zipfile, and select Create. -
Monitor the status on the Jobs page. A Completed status confirms the file is valid and ready to upload. A Failed status indicates validation errors — review the job details for error messages.
For more information, refer to the TDEI Portal > User Manual > Jobs > OSW - Validate guide.
Upload the resulting .zip file to the TDEI Portal as a new OSW dataset.
-
Log in to the TDEI Portal and navigate to Datasets. Select Upload Dataset in the top-right corner.
-
Choose a Service: Choose an available
OSWservice, then select Next. -
Attach Data File: Drag and drop your
.zipfile onto the upload area (or select to browse), then select Next. -
Specify Metadata: Fill in the required metadata fields across the tabs:
- Dataset Details tab:
- Dataset Name
- Dataset Version
- Schema Version
- Collected By
- Collection Date
- Data Source
- Data Provenance tab:
- Full Dataset Name
??? note "Screenshot: Data Provenance tab"
  - Dataset Details tab:
-
Changeset: Leave this step empty and select Submit at the bottom right.
-
A Success popup confirms the upload job was accepted. Select Go to Jobs Page to monitor its progress.
-
A new Dataset-Upload entry will appear at the top of the Jobs list. Wait for the status to show Completed.
!!! info "This job may take a moment"
Depending on the size of your dataset, the upload job may take anywhere from a few seconds to several minutes to complete. Refresh the Jobs list or the **Check Status** popup window periodically to check the status. -
The dataset will now be available in the Datasets section of the portal.
For more details on working with datasets in the TDEI Portal, refer to the Datasets guide.
!!! success "You have now successfully converted and uploaded a curb ramp dataset to the TDEI!"

















