Skip to content

Commit 956a25c

Browse files
committed
Update lock, README
1 parent 1526a70 commit 956a25c

3 files changed

Lines changed: 33 additions & 1844 deletions

File tree

README.md

Lines changed: 23 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,6 @@
11
# Bowser
22

3-
Map-based viewer for InSAR time-series outputs — GeoZarr cubes, dolphin
4-
workflow directories, or loose GeoTIFFs — served through a local FastAPI
5-
server and rendered by titiler in the browser.
3+
Map-based viewer for InSAR time-series outputs — GeoZarr cubes, dolphin workflow directories, or loose GeoTIFFs — served through a local FastAPI server and rendered by titiler in the browser.
64

75
![](docs/demo-timeseries.jpg)
86

@@ -16,17 +14,14 @@ uvx --from bowser-insar bowser run --stack-file example-cube.zarr
1614

1715
Open the `http://127.0.0.1:8000` link that bowser prints.
1816

19-
> **Heads up — GDAL drivers.** The PyPI wheel is enough for GeoZarr cubes
20-
> and plain GeoTIFFs. For NetCDF/HDF5 inputs (DISP-S1 `.nc`, the VRT
21-
> legacy path) install the conda-forge build of GDAL — the `gdal` PyPI
22-
> package has no wheels and rasterio's bundled GDAL doesn't ship those
23-
> drivers. `pixi` is the easiest way:
17+
> **Note on PyPI installing an GDAL**: The PyPI wheel is enough for GeoZarr cubes
18+
> and plain GeoTIFFs. For other input formats, `pixi` is the easiest way:
2419
>
2520
> ```bash
2621
> pixi global install bowser-insar
2722
> ```
2823
29-
## Install in another project
24+
**Installation in another project**
3025
3126
```bash
3227
# GeoZarr / GeoTIFF only
@@ -36,7 +31,9 @@ pip install bowser-insar # or: uv add bowser-insar
3631
pixi add bowser-insar
3732
```
3833
39-
## Quickstart: dolphin workflow
34+
## Quickstarts
35+
36+
### From [`dolphin`](https://github.com/isce-framework/dolphin)
4037

4138
`bowser setup-dolphin` scans a dolphin work directory and writes a
4239
`bowser_rasters.json` describing every raster group it finds. `bowser run`
@@ -47,19 +44,26 @@ bowser setup-dolphin work/
4744
bowser run
4845
```
4946

47+
**Note:** these outputs must be **geocoded** to work with bowser, which lays them out on a basemap using web mapping tools.
48+
5049
If you're running over ssh, tunnel the port back to your laptop:
5150

5251
```bash
5352
ssh -N -L 8000:localhost:8000 myserver
5453
```
5554

56-
## Quickstart: DISP-S1 → GeoZarr cube
55+
### From [`dolphin`](https://github.com/isce-framework/dolphin) → GeoZarr cube
5756

58-
The recommended path for DISP-S1 products is to convert them once into a
59-
single pyramidal GeoZarr cube, then serve that. The converter handles the
60-
reference-date bookkeeping for `unwrapped`-style pair indices, builds the
61-
multiscale pyramid, and writes GeoZarr convention attributes so titiler
62-
can pick the right overview per tile zoom.
57+
Once the `bowser_rasters.json` file is created, you can convert the data into a GeoZarr cube:
58+
59+
```bash
60+
pixi run -e writer bowser tifs-to-geozarr \
61+
--pyramid bowser_rasters.json cube.zarr
62+
```
63+
64+
### DISP-S1 → GeoZarr cube
65+
66+
To work with DISP-S1 products, you may convert them once into a single pyramidal GeoZarr cube, then serve that. The converter handles the reference-date bookkeeping for morving temporal reference,, builds multiscale pyramids, and writes GeoZarr convention attributes so titiler can pick the right overview per tile zoom.
6367

6468
```bash
6569
# 1. prepare per-band GeoTIFFs and a bowser_rasters.json
@@ -73,15 +77,11 @@ pixi run -e writer bowser tifs-to-geozarr \
7377
bowser run --stack-file cube.zarr
7478
```
7579

76-
For a **multi-dataset catalog** (pick from a map of bounding boxes at
77-
startup) and an **EC2 deployment** serving cubes from a private S3 bucket,
78-
see [`deploy/README.md`](deploy/README.md) — it covers the
79-
`bowser register` CLI, the Docker image, and the EC2 bootstrap script
80-
end-to-end.
80+
For a **multi-dataset catalog** (pick from a map of bounding boxes at startup) and an **EC2 deployment** serving cubes from a private S3 bucket, see [`deploy/README.md`](deploy/README.md) for the `bowser register` CLI, the Docker image, and the EC2 bootstrap script end-to-end.
8181

8282
## CLI Usage
8383

84-
```
84+
```bash
8585
$ bowser --help
8686
Commands:
8787
prepare-amplitude Convert complex SLC GeoTIFFs to amplitude-in-dB.
@@ -113,8 +113,7 @@ npm install
113113
npm run build # rebuilds src/bowser/dist/ after .tsx / CSS changes
114114
```
115115

116-
`src/bowser/dist/` is checked in so non-frontend users can `pip install`
117-
without Node.
116+
The PyPI wheel bundles `src/bowser/dist/` (built by the CD workflow before publishing), so end users can `pip install bowser-insar` without Node. From a git checkout, run `npm run build` first to populate `src/bowser/dist/` before `pip install -e .`.
118117

119118
For a hot-reload loop on UI/styling changes, run the backend and the
120119
Vite dev server in two terminals. Vite proxies API calls to the

0 commit comments

Comments
 (0)