Understanding the CITY in CityStrides

I’ve been reading old forum posts, looking through that useful Google Doc of what’s ignored from OSM, and doing some Overpass Turbo tests, but here’s something I’m not clear on…

Correct me if I’m wrong, but, as I run & hike deeper into the unincorporated hills between Calabasas and Malibu, I’m realizing… CityStrides only keeps track of the nodes that are within the precise incorporated city boundaries. First of all, I love that it actually even uses such boundaries (how many people say they live in Beverly Hills, for example, but are really outside that city’s boundaries, but within the post office region called “Beverly Hills”?).

But, second, there are unincorporated areas here in L.A. County that are city equivalents that actually have their own precise boundaries. Examples: Altadena, Marina Del Rey, East Los Angeles, Ladera Heights, Agua Dulce, Topanga, Willowbrook, etc. I’d love for places like these to count in CityStrides.

So… how does CityStrides decide what it includes? Is it based on admin_level (perhaps 8) or something else? Just like how CS only includes ways that have a name, while ignoring bus stops, rest areas, and private access, what rules is CS following for deciding on its “cities” that it includes?

Thank you!

There are two aspects to this - one is large data imports and one is single-city additions.

The large data imports are what got things started & how I import any still-missing countries… I hunt around in OSM to figure out what the country’s admin_level for “Regions” are (in the US we have “States” and this level is named differently around the world - I needed some word to refer to all of them, and this seemed nicely generic)… and then within some of those regions, I figure out what the admin_level for all/most of the cities are. The resulting admin_levels are either :100: correct, good enough, or “oh wow” wrong. It depends on various things like how much coffee I’ve had, etc. :sweat_smile:

The single-city additions are from people who realize they live either in an oddly-ranked admin_level city, or an unincorporated area, or something. I don’t really have infinite time for city import stuff, so lots of times I’ll skip over spending [some amount of time] trying to figure out if there’s a pattern that can be imported & just import the one place that was asked for. Sometimes the people making the request know enough about OSM to do that work for me & suggest that I bulk-import everything at a certain admin level or tagged a certain way.

These unincorporated areas need to be mapped in OSM to make them available to import in CityStrides, though, and a lot of the time that’s not the case. I find Nominatim an easier site to hunt down cities… You can search for e.g. Altadena and see that only a Node is returned. Then you can search for e.g. Marina Del Rey and see that there’s a usable Administrative record - similarly for East Los Angeles.
I usually try to be careful about bulk importing odd admin_level like 9 across all of CA, because I’m unsure if all of those places are covering unique land (and not adding to the nested city layout in a weird way). In those cases, if I have the time, I’ll create some queries in Overpass Turbo to share with locals who can help confirm/deny that all the data is good & should be imported.

It’s linked somewhat randomly throughout the forum, but the Missing/Broken Cities Tracker is my working document for cities that need to be imported. It’s great for one-offs, but for more large-scale things like unincorporated areas of CA it can be useful to work through that in a thread within the forum.

Fascinating! Thank you for the detailed response. Your examples were correct. Altadena doesn’t appear to be properly defined in OSM, while East L.A. and Marina Del Rey do indeed have their borders marked correctly. But do hold off on importing them to CS… I can do the research on other possible California additions to give you a much longer list so that your workload would be less overall.

Now that I’m comfortable with OSM edits, it does appear that my next big task is to learn how to define borders and designate names and admin levels. This will be helpful for not just places like Altadena, but also for creating the rest of the nested neighborhoods in the city of Los Angeles (some of them are correct, but others like Chatsworth have borders that are totally whack). Anyone have recommendations for good resources that are specific to learning how to do these kind of borders and admin levels?

A week ago, I briefly experimented with one of them since I live a few miles away; it’s small, legit, and defined; and I know it intimately: Westhills, CA. That’s one-word Westhills which is unincorporated L.A. County, not to be confused with two-words West Hills which is a nested neighborhood of the city of Los Angeles. Here is Westhills in OSM. That red administrative border is correct (except that it’s missing the westernmost end which is also the L.A.-Ventura County border). But I was unsuccessful at completing that west border, as well as labeling it properly as an admin_level=8 place called Westhills. If anybody is interested in doing and stepping me through this as a learning example, I would be grateful. :slight_smile:


1 Like

** Wait, maybe East L.A. and Marina Del Rey wouldn’t need to be manually imported by you? Nominatim notes that they’re both admin_level=9, but that’s actually incorrect. According to this OSM wiki, admin_level=8 is not just for cities, but also towns and villages. As defined unincorporated L.A. County places, both East L.A. and MDR fall into the same class with towns (and they are colloquially thought of as city equivalents by the locals too), so they should be level 8. So… if they were simply changed to level 8, would they get imported into CS on their own? Or would they still need to be done manually?


1 Like

I don’t think my description of the process was completely thorough - none of the city import process is automatic, it’s just a matter of whether I can add cities in bulk or if I have to add them individually.

So in the case of the US, where it’s largely admin_level 4 for states and admin_level 8 for cities … If a ton of cities were updated from admin_level 9 to admin_level 8, I could re-run my bulk import script to bring those in (and ignore any cities that already exist in CityStrides).
If that’s not the case, and these admin_level 9 are supposed to be tagged that way, then I’d look to see if all admin_level 9 in California should exist in CityStrides. If they should then I can update the bulk import script to bring in 8 & 9, and re-run that to bring in all the 9.
If all the 9 shouldn’t be in CityStrides, then I would have to import those one by one (it’s still somewhat automated, but I do have to do much more data entry).

I hope this helps and doesn’t further confuse. :smile: