Resources

Studio in Action: Finding Active Construction

Matt

7 min. read

Huntsville, Alabama is one of the fastest-growing metros in the country — new subdivisions, warehouses, and facilities break ground every month. Tracking that growth by hand means scrolling through imagery tile by tile and guessing what counts as "active." In this walkthrough, we'll use LGND Studio to go from a plain-English request to a labeled dataset of active construction sites across Huntsville, start to finish.

What We're Building

By the end of this walkthrough we'll have a dataset that flags active residential construction across Huntsville — each result scored, labeled, and traceable back to the source imagery it came from. The same steps apply to any target: solar farms, flood damage, storage tanks. Construction is just a clear, visual example to follow along with.

Built on the API

Studio doesn't replace the LGND API — it's the next layer on top of it. You start in the API, where you define collections: imagery and data sources scoped to the areas, time windows, and providers you care about. That's where your raw access to Earth observation data lives.

Studio picks up from there. Point it at a collection, and the agent turns organized access into a finished result — searching by meaning within it, learning from your labels, applying that understanding across the whole collection, and exporting a labeled dataset. The API gets you scoped, queryable data. Studio is what builds a dataset out of it, without you writing the search, labeling, or training code yourself.

For this walkthrough, that means one setup step before we open Studio: creating a collection scoped to Huntsville.

Step 1: Create a Collection in the API

Before Studio can search, it needs a collection to search within. Using the LGND API, we define:

  • Area of interest: Huntsville, AL
  • Time window: 2023, since we're after active construction, not sites that finished years ago
  • Imagery provider: NAIP — for this example, the Alabama NAIP 2021–2023 collection

Once the collection exists, it's ready to hand off to Studio.

Step 2: Seed the Search

Open Studio and describe the target in plain English (annotation 1):

Find active construction on residential housing projects in Huntsville, AL for 2023.

That's it — no query syntax, no filters to configure by hand. 

From that one sentence, the agent works through a short sequence on its own: add_aoi (added the Huntsville area), set_toi (scoped the time window to all of 2023), select_collection, and embedding_search — landing on 100 chips loaded from the Alabama NAIP 2021–2023 collection (annotation 2).

Studio doesn't just return results — it lays out the plan before you ask for one (annotation 3):

  1. Review the grid — flip through the chips and label the ones showing active residential construction. Thumbs-up the positives, thumbs-down anything that's clearly not.
  2. Find more like the good ones — once you've labeled a handful of positives, search from the concept to pull more matching chips across Huntsville.
  3. Generate the dataset — when the results look solid, apply the model across the full area and save it.

That plan is exactly the seed → label + refine → apply → export loop — the agent is just narrating it in plain English before it starts.

Step 3: Label + Refine

Label: Open the grid, and each chip shows a relevance score (annotation 1). Select the clear hits and misses and label them in batches (annotation 2).

Refine: As soon as you label a batch (annotation 2), Studio retrains and re-ranks everything in real time. In this run, one round of "label 10 positive" pushed the top matches from the 40% confidence range to 95–96% confidence (annotation 1):

Iterate: Once the model has a feel for the target, ask it to pull more candidates (annotation 1) instead of labeling the same 100 chips. Here, search_from_concept returned 100 additional chips re-ranked by likelihood of matching active residential construction (annotation 2):

Analyze: You can also check the histogram at any point (annotation 1) to see how cleanly the model is separating hits from misses, and where the cutoff threshold sits. The agent also explains the separation and cutout in plain text as an output in the chat:

In this run, Studio called it "good separation" — positives and negatives scoring on opposite ends of the distribution — and suggested tightening the threshold from 0.25 to 0.18 before generating the dataset (annotation 2). Keep labeling until the top-ranked results consistently match what you're after; most targets converge after a few rounds.

Step 4: Apply Across Huntsville

Once the model reflects what you're looking for, apply it by simply telling the agent to:

Create the dataset

Apply the model across the collection and save the results.

Studio runs the learned model across the full collection / AOI — not just the sample you labeled (annotation 1).

In this run, apply_to_corpus scored every candidate across Huntsville and saved the top 222 chips at or above the threshold, out of 1,274 candidates evaluated (annotation 2).

Step 5: Export the Dataset

Once applied, Studio opens a Dataset Overview with full provenance: which collection it searched, how many chips it kept, and when it was generated (annotation 2).

From here you can browse chips on the grid or map, filter by label, review the spatial distribution, or download the dataset as your deliverable (annotation 1).

Bonus: Ask It Anything About the Results

The agent doesn't stop at export. Because it's still holding the full context of what it found, you can ask follow-up questions in plain English and get an answer grounded in your actual dataset — not a generic search.

In this run, asking "where is it happening?" got a real answer: North Huntsville near Wade Mountain as the largest and fastest-growing area, Southeast Huntsville's Green Mountain area leading single-family growth, and a citywide split of 55% multi-family to 45% single-family permits in 2024. That's the dataset talking back, not a separate report you'd have to write yourself.

What You End Up With

A labeled, exportable dataset of active construction sites across Huntsville — 222 scored chips pulled from 1,274 candidates, built in a single sitting, with a clear record of how each result was scored. Point the same collection at a different question next month — say, tracking which sites from this run are now complete — and you're re-running a project, not starting over.

Try It Yourself

Studio is available now for Enterprise customers. Start with a collection scoped to your own area of interest, and see how fast "find active construction" turns into a finished dataset.