Who Owns Los Angeles?

los_angeles_1_compressed.jpg

“What is this you call property?”, asked Massasoit, the leader of the Native American Wampanoag tribe. “It cannot be the earth, for the land is our mother, nourishing all her children, beasts, birds, fish and all men. The woods, the streams, everything on it belongs to everybody and is for the use of all. How can one man say it belongs only to him?”

Good question, Massasoit. Yet, due to a tragic combination of the pathogenic bacteria Leptospira and aggressive colonists the answer became irrelevant and the concept of land ownership proliferated through the majestic lands of the new world like a virus.

Today, the dust has settled and the iron horse has carried the white man to the west coast, where I currently reside. As I explored the wonderful city of Los Angeles I began to wonder to whom, exactly do I owe the pleasure of my environment? Who “owns” the dirt I stand on? So I did some research.

The “United States” is divided into 3,144 counties and county equivalents. Of these, Los Angeles county is the most populous, with over 10 million residents. The least populous, Loving County, Texas has only 82. Funny story, in 2006 a group of Libertarians attempted to buy up land and seize power in Loving County with the goal of establishing their ideals, but were thwarted by the local sheriff. The group is currently featured on a “Wanted” poster in the county’s sole courthouse.

LA County has an area of 4,751 mi2, divided across 88 cities and 2,379,680 parcels. However, much of the land is “unincorporated”, meaning it does not fall within the jurisdiction of an established city. If you would like to establish your own city in LA County you can apply to the LAFCO for as little as $2,5001. The information regarding parcel owner, location, and “assessed value” for collecting property taxes is maintained by the Assessor’s Office2.

Formats and Tools

Most, if not all, counties use GIS (geographic information systems) to maintain this data3. The LA office uses Microsoft Access for ownership and assessed value information, and the popular Shapefile format for geometry and mapping. ESRI (environmental systems research institute), founded in 1969, dominates land-use consulting with their popular ArcGIS software and Shapefile format developed in the early 1990s. A Shapefile consists of several different files, 3 of which are mandatory:

.shp – feature geometry as a set of either WKT (well known text) of WKB (well known binary) coordinates. Each of these entries can be one of several different simple datatypes such as

POINT (30 10)

LINESTRING (30 10, 10 30, 40 40)

POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10))

MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)), ((15 5, 40 10, 10 20, 5 10, 15 5)))

.shx – index of positional geometry to allow quickly stepping forward and backward

.dbf – old school simple database format popular in the 1990s, here stores attributes for each shape

There are several optional files, the most important of which though is

.prj – represents the projection information of the coordinates in the shapes. More on this soon.

I performed extensive cleaning and simplification on the assessor’s office data as part of this analysis, the bulk of which was done with PostgreSQL and the fantastic PostGIS extension4.

If you want to follow along, say with an EC2 instance, first grab some dependencies.

 sudo apt-get -y install postgresql postgresql-contrib postgis
postgresql-9.3-postgis-2.1-scripts

Now let’s create a database for our geospatial data

createdb gis
psql -d gis -c 'create extension postgis'

Projections

The earth is not a perfect sphere. We represent it instead as a “geoid”, a mathematical object that, ideally, represents the precise shape of the earth if it were only under the influence of gravitation and rotation. While imperfect, the geoid, combined with satellite data provides a somewhat close approximation to the actual shape of the earth. The geoid works in tandem with different “datum”, which are coordinate systems used by regions to define a coordinate system consistent with the geoid. Today, improvement to the model and coordinate systems has led to the possibility of a single global standard for the globe, WGS84, that is gaining in popularity. Still, datums are typically more precise when defined only for a single region.

The datum used by the LA Assessor’s office is NAD1983. The naming convention originated with the first North American survey in 1901, based on an ellipsoid geoid model developed in 1866. The system was updated in 1927 based on surveys of the entire continent but using the same geoid, and updated again in 1983 using satellite and remote sensing data using GRS 80 as the geoid, the same model originally used by the popular global standard WGS84. If it sounds simple, it is not, but if you’re interested it’s a great reason to learn spherical harmonics.

spherical_harmonics

Just remember a datum is a coordinate system defined on a geoid, which is a model of the earth. Geoids and datums exist for other planets too, like Mars.

I re-projected the assessor’s office data from NAD1983 to WGS84 using QGIS. All projections have a corresponding SRID (spatial reference system identifier). Let’s load the shapefile into a PostGIS table, making sure to tell it the projection WGS84, which has an SRID of 43265. You can download it from me.

wget http://dwur9qzdkvp67.cloudfront.net/la_parcels.tar.xz
tar -xvf la_parcels.tar.xz
shp2pgsql -I -s 4326 -g geom la_parcels.shp la_parcels | psql -d gis > import.log

Basic Queries

Next let’s get an SQL prompt

psql -d gis

And run a simple query. This should improve performance a bit.

vacuum analyze;

Now let’s have some fun. What are the most expensive pieces of land in LA County?

select land_value, owner_name, address_number, street_name
from la_parcels order by land_value desc limit 10;
land_value owner_name address_number street_name
252,479,578 CATALINA MEDIA DEVELOPMENT II 3000 ALAMEDA AVE
183,110,154 MOBIL OIL CORP 3700 190TH ST
154,291,320 BH WILSHIRE INTERNATIONAL LLC 9900 WILSHIRE BLVD
137,295,210 BP WEST COAST PRODUCTS LLC 1801 SEPULVEDA BLVD
136,879,311 WARNER BROS ENTERTAINMENT INC 4000 WARNER BLVD
135,354,000 NEXT CENTURY ASSOCIATES LLC 2025 AVENUE OF THE STARS
132,214,693 UNIVERSAL STUDIOS LLC 3900 LANKERSHIM BLVD
129,077,263 TWENTIETH CENTURY FOX FILM CORP 10201 PICO BLVD
126,062,515 UNIVERSAL STUDIOS LLC 3900 LANKERSHIM BLVD
122,666,461 TISHMAN SPEYER ARCHSTONE SMITH 3600 BARHAM BLVD

Entertainment and oil companies dominate here. That is land only though. I wonder which of these has the most expensive “improvement”, or building? Let’s use a nested query.

select improvement_value, owner_name, address_number, street_name from
(select land_value, improvement_value, owner_name, address_number, street_name
from la_parcels order by land_value desc limit 10)
as lands order by improvement_value desc;

20th Century Fox wins with $265 million. Exxon Mobil’s sprawling refinery is assessed at only $19 million. Someone must be trying hard to keep property taxes low. Okay what about the most expensive properties overall? Combining land and building value?

select (land_value+improvement_value) as
total_value, owner_name, address_number, street_name
from la_parcels order by total_value desc limit 20;
total_value owner_name address_number street_name
628,970,661 CHILDREN HOSPITAL OF LOS ANGELES 4550 SUNSET BLVD
550,125,487 KAISER FOUNDATION HOSPITALS 9343 IMPERIAL HWY
523,472,588 CEDARS SINAI MEDICAL CENTER 8720 ALDEN DR
521,206,676 TRS OF THE J PAUL GETTY TRUST 199 CHURCH LANE
515,115,546 TRS OF THE J PAUL GETTY TRUST 1200 GETTY CENTER DR
511,156,285 TRS OF THE J PAUL GETTY TRUST 0
511,156,285 TRS OF THE J PAUL GETTY TRUST 0
478,152,504 CENTURY CITY MALL LLC 10250 SANTA MONICA BLVD
477,297,278 HAY,DOROTHY L DECD EST OF AND 121 LA CIENEGA BLVD
475,058,030 ANHEUSER BUSCH INC 15800 ROSCOE BLVD
466,751,222 TRIZEC 333 LA LLC 333 HOPE ST
439,548,987 MARANGI,LEONARD M ETAL TRS LESSR 100 CONGRESS ST
439,000,000 COMMUNITY REDEVELOPMENT AGENCY 350 GRAND AVE
420,500,000 WILSHIRE COURTYARD LP 5700 WILSHIRE BLVD
397,617,220 DISNEY,WALT PRODUCTIONS INC 500 BUENA VISTA ST
396,907,059 CEDARS SINAI MEDICAL CENTER 127 SAN VICENTE BLVD
394,172,461 TWENTIETH CENTURY FOX FILM CORP 10201 PICO BLVD
376,000,000 2121 AVENUE OF THE STARS LLC 2121 AVENUE OF THE STARS
364,457,522 1999 STARS LLC 1999 AVENUE OF THE STARS
361,003,213 UNIVERSAL STUDIOS LLC 3900 LANKERSHIM BLVD

Hospitals monopolize the top spots. Healthcare is expensive. No surprise to see the magnificent Getty Center either. I wonder if the multiple entries are redundant or it’s worth $2 billion. Wouldn’t be surprised either way. Did you know it’s free? Free! Unlike the hospital.

getty_compressed.jpg

Let’s find another landmark. How about Dodger Stadium? We’ll use a forgiving string compare to make sure we match the street.

select (land_value+improvement_value) as
total_value, owner_name, address_number, street_name
from la_parcels
where address_number = 1000 and street_name ilike 'elysian park%'
total_value owner_name address_number street_name
84,409,139 “REALCO INTERMEDIARY LLC” 1000 “ELYSIAN PARK AVE”

Dodgers stadium must be worth more than $84 million. How do the assessed values compare to real world values? Let’s use One Wilshire as an example. It sold in 2013 for $437.5 million and its assessed value is $297.5 million. Not too far off.

Now let’s use the aggregation function sum() and group by to find the most expensive cities by area in LA County. Since the city column is still a bit messy we’ll use having to eliminate the outliers.

select city, price_per_area from
    (select sum(area) as area, sum(land_value) as land_value, count(ain) as parcels, city,
    (sum(land_value) / sum(area)) as price_per_area
    from la_parcels group by city having count(ain) > 1000
    order by price_per_area desc)
as cities
city price_per_area total_value
MANHATTAN BEACH 110.6230954 12516203385
BEVERLY HILLS 82.13910857 22623901990
HERMOSA BEACH 60.45970815 5267669536
PALOS VERDES EST 47.59576314 4671096274
W HOLLYWOOD 44.57732453 2080465255
SANTA MONICA 43.00346533 26202224215
SAN MARINO 42.27213826 4967172261
LA CANADA FLT 31.25619651 3794539133
EL SEGUNDO 21.44013791 5831487943
BURBANK 21.05596602 17013420158
SOUTH PASADENA 20.63481846 3601284180
MONTROSE 20.56928866 560769462

I still want an answer to my original question. Who owns the most land?

select owner_name, count(ain),
sum(land_value)+sum(improvement_value) as holding,
sum(area) as lands from la_parcels
group by owner_name order by lands desc limit 10
owner_name parcel_count holding_value holding_area
U S GOVT 2695 406477416 33837253322
STATE OF CALIF 1387 271712949 2551166380
L A CITY 5498 1123805464 1586934789
SANTA CATALINA ISLAND 79 22222591 1504028479
L A COUNTY 1768 603224059 870795789
TEJON RANCH CO 59 5411765 703066562
L A CITY DEPT OF WATER AND POWER 2340 212220963 627091955
NEWHALL LAND AND FARMING CO 415 199329086 618742553
MOUNTAINS RECREATION AND 622 70849023 487140373
L A CO FLOOD CONTROL DIST 3916 54042362 448175685

By area huge swaths of the county is controlled by the federal and state government, with a few agriculture companies such as Tejon Ranch and Newhall Land and Farming Company sprinkled in.

los_angeles_2_compressed.jpg

More Advanced Queries

I wonder what percentage of LA County is not held by one of the 10 entities above or is unincorporated? Here we will use a view, which allows you to treat a query like its own table.

create view top_owners as select owner_name from
(select owner_name, count(ain),
sum(land_value)+sum(improvement_value) as holding,
sum(area) as lands from la_parcels
group by owner_name
order by lands desc limit 10) as owners

Now in order to select the lands these guys own we’ll use a join statement, specifying where the view and table intersect. Join by default is inner, meaning we’ll only get rows where the field matches. Now we can succinctly find the parcels owned by these entities.

select count(*) from la_parcels join
top_owners on la_parcels.owner_name = top_owners.owner_name

And finally use a union operation, which can combine multiple select statements into a single column.

select sum(area) from la_parcels join
top_owners on la_parcels.owner_name = top_owners.owner_name
union select sum(area) from la_parcels
43234395887
142503798431

About 30%. And finally what % of the land in the city of LA is devoted to public space? I think this is an important metric for any city.

select sum(area) from la_parcels where owner_name ilike 'l a city'
 or owner_name ilike 'l a city park' union select sum(area)
from la_parcels where city ilike 'los angeles'
1621548676
20341577058

8%. Not bad. Griffith park, Elysian park, MacArthur park, Runyon Canyon, Grand park, Vista Hermosa, LA has some fantastic public spaces. The largest green areas are owned by the federal or state government and are outside the city, though not terribly far. Due to lack of Zoning Code standardization it is difficult to get a good picture of what the lands are used for.

Spatial Queries

At last, we unleash PostGIS. Note that since we are using WGS84 our results will be in latitude and longitude rather than meters as above.

First it’s good to know what we’re working with.

select distinct GeometryType(geom) from la_parcels

The geom field is exclusively MULTIPOLYGON. If we want to work with simpler shapes we can unroll them with ST_Dumps() in to the POLYGON type.

Alright I wonder where is the geographic center of LA County? We’ll use ST_Extent() to roll up all of our geometries in to a bounding box, and find the X and Y coordinates of its center with ST_Centroid().

select ST_Y(ST_Centroid(ST_Extent(geom))),
ST_X(ST_Centroid(ST_Extent(geom))) from la_parcels
latitude longitude
33.80924996626 -118.29553231211

This result is from a simple box around our shapes. That is not very rigorous. Instead we should roll up all of our shapes together and form a “convex hull”, the minimum geometry that encloses them, and find the centroid of that. Let’s find how far the center of Malibu is from that point. Here we use a geometry constructor. the true in the ST_Distance() function gets us the distance across the geoid rather than straight through.

select ST_Distance(malibu_center, ST_MakePoint(-118.29553231211, 33.80924996626, 1))
from (select ST_Centroid(ST_ConvexHull(ST_Collect(geom)))
as malibu_center from la_parcels where city ilike 'malibu') as malibu

0.505358312522112 is our answer. That’s quite a drive. Especially in traffic.

Last but not least, I took the liberty of creating a web interface to this dataset. Moving around the whole dataset would be inefficient, so I use google maps and javascript to ask a minimal flask application, which in turn asks the database which parcels are within the bounding box of the map’s current view. The @ operator finds the geometries inside the envelope I build. The core query is simply:

select distinct
    ain,
    land_value + improvement_value as total_value,
    land_value,
    improvement_value,
    owner_name,
    year_built,
    address_number,
    street_name,
    city,
    state,
    zip_code,
    zoning_code,
    area,
    perimeter,
    ST_AsGeoJSON(ST_MakeValid(geom)),
    ST_AsGeoJSON(ST_Centroid(ST_MakeValid(geom)))
    from la_parcels
    where geom @ ST_MakeEnvelope(%s,%s,%s,%s)

The bounding box of the map is passed to the %s parameters. A few of the geometries are invalid so ST_MakeValid() helps us out there. The query is amazingly fast, around 12ms. Drawing on the map is the slow part. Google Maps has gotten too complicated. But it still works pretty well as long as you don’t zoom out too far and avoid residential areas. The american dream of individual home ownership is slowing down my app. Hopefully I can speed it up but for now you can play around with it here. Click on the geometry to see the value. Some buildings are broken up in to many individual parcels in three dimensions. That is the difference between an apartment and a condominium. In a condo, you own the parcel from the county.

borges

Conclusion

I was disappointed with how difficult it was to obtain this data initially and the poor quality it came in. Governments and constituencies of all sizes stand to benefit enormously from investment in modern software tools and stronger commitments to transparency.

While building I began to dream of having all the parcels of the United States in a single database. That would be a fascinating study, but the data is horribly spread about and fragmented. If you are interested in obtaining the data for your county, or another, and structuring it in to the same schema I would be very grateful, and promise to share the collected information. You can track the completeness of what has been gathered for California here. Please contact me if interested in contributing.

What if we had the data for other nations too? Could we put the entire world in a computer?

los_angeles_3_compressed.jpg

References

[1] http://lalafco.org/Forms/Application%20Form12-11%27.pdf
[2] http://assessor.lacounty.gov/extranet/default.aspx
[3] to the pedants that still insist on using “these data” give it a rest, it’s confusing to most people
[4] http://postgis.net/
[5] http://spatialreference.org/ref/epsg/wgs-84/
[6] http://postgis.net/docs/manual-1.3/ch06.html

Do you love databases? Soylent is hiring a Chief Database Architect.

  • gilahacker

    “Do you love databases? Soylent is hiring a Chief Database Architect.” << link goes to a site that asks me to log in with my Google account and then tells me I don't have an account. Whee.

    • robrhinehart

      sorry fixed the link

  • lollipop

    The California state has been working on trying to gather this data unsuccessfully over the years despite its tremendous value. Some obstacles are related to the public domain status of the local parcel data, the county owns it and sells it as a source of revenue. The Federal government from time to time, need to assemble such data set for dealing with disaster situations, (earthquake, fire, environmental assessment, terrorism etc). So you might be able to find such data set by going for Homeland Security, Federal Emergency Management Agency, Environmental Protection Agency etc.. Private companies that offer geospatial data services(Esri) or those that offer products in real estate valuation (Zillow) etc, might also be a good source.

  • The team at mapsen.se can help you plot the data on a map. It will be screaming fast compared to google maps.

  • Jeremy Goodrich

    That’s an incredible article; I’m happy to see that indeed, the government still does in fact own the majority of the land in our countries most valuable county. Also that 8% is set aside for public use, in city; however, I wonder what percentage that is between rich & poor neighborhoods? Eg, if we start to dive into data like this, it should become readily apparent nationwide that investment choices overwhelmingly favor already, “Gentrified,” neighborhoods. I hope more people can contribute data to this, I know a guy who works in the same geospatial field from grade school & high school; it’s a specialized field. I’ll point him here too.

  • B. Alvn

    The fact remains that many Natives did basically own land on a tribal level and defend it to the death. California was one of the more peaceable areas, though, and the Chumash (a bit north towards Santa Barbara) were considered the most peaceful and most evolved culture wise, apparently. But at the time of the pilgrims or whatever, there were major wars going on in the New World, and at times “whites” got involved at least in the New England area. The Plains Indians were downright warriors and had all kinds of warfare, as did people’s in Central America and elsewhere. Private ownership, maybe not, but definitely tribal ownership.

    • B. Alvn

      I think it is safe to say that, as much as we’d like to deny it, the archetypical Horus/Mars/Thor/Ares is a fundamental part of human psychological makeup and land has often been a good reason for the expression thereof.

  • B. Alvn

    Your picture for some reason brings The Terminator to mind, eh?

  • Simon Willison

    Have you played with Mapbox GL JS at all? It’s a pretty amazing vector JavaScript mapping API that makes use of WebGL, it might give you better performance than Google Maps for this kind of work: https://www.mapbox.com/mapbox-gl-js/

    • Sean Adkins

      I don’t know how different the performance would be since Google Maps now uses WebGL as well.

  • Chris Gonnerman

    I don’t know how it’s done in California, but in Missouri “assessed” values are a percentage of “appraised” values based on the type of usage. Farm property is assessed at the lowest percentage, then residential, and finally commercial. I don’t recall the percentages for farm or residential, but commercial property is assessed at 33% of appraised value. Generally, the tax appraisal system in use in a Missouri county will provide a standard set of computations for the appraisal, which is not necessarily the same as a professional appraiser will give you; then the straight assessment percentages are applied to the subtotals. Still, as you are comparing properties that should be more or less entirely commercial, even if California uses a similar percentage assessment system, the comparisons should still be valid.

    Disclaimer: I’ve worked with Assessors in Missouri since 1984, but am not one myself, nor am I an appraiser.

  • Austin Wilkins

    In response to your opening remarks, most native American tribes were fiercely territorial. As it says on the wiki about his tribe “Each community had authority over a well-defined territory”. So I guess even the originator of the question knew the answer prior to asking.

  • Craig Williams

    Why un-project the data? Did you perform a datum transformation when going to WGS84? Was the area then in decimal degrees? Spatial calculations in WGS84 without geodesic algorithms do not provide valid results.

    • WGS84_4_LIFE

      Craig are you for real?

  • wmyl

    Are you familiar with the concepts of “Georgism”, specifically land value “tax” (LVT)?

  • zhando

    “Someone must be trying hard to keep property taxes low”

    Has the author ever heard of Proposition 13? I enjoyed the article. Thanks.

  • Bogdan Ciobanu

    I’m just gonna leave this here … that’s a scan website with some crap “energy saving” device that is most probably using your image … http://electricity-saving.net/#part5