georgiacivicdata.school_zones#
- georgiacivicdata.school_zones(district_code=None, school_code=None, district=None, school=None, zone_level=None, grade=None, year=None, resolution='display', *, geometry=True, backend=None)#
Get school attendance zones.
Attendance-zone polygons: the areas that assign a home to its zoned elementary, middle and high school, one polygon per school, level and grade run, for the current school year.
Zones differ in precision. Some are the district's official GIS layers; others are digitized from PDF maps, rebuilt from street lists, or are the whole district outline (districts with one school per grade). Read
methodandaccuracy_classbefore treating zones as equally exact, and seeschool_zone_coverage()for how completely each district was collected. A zone is the default assignment, not an official enrollment determination: confirm with the district.A statewide pull is large, especially at
resolution="full". Filter to a district and keep the"display"default for maps.- Parameters:
district_code (str or list of str, optional) -- Codes.
school_code (str or list of str, optional) -- Codes.
district (str or list of str, optional) -- Names, matched to codes as in
rows(). A school name found in more than one district needsdistricttoo.school (str or list of str, optional) -- Names, matched to codes as in
rows(). A school name found in more than one district needsdistricttoo.zone_level (str or list of str, optional) --
"elementary","middle"and/or"high". Default: all.grade (str or int, optional) -- One grade: keep zones serving it (
"pk","k","01"to"12";"5",5and"K"are accepted). Default: all.year (int, optional) -- The zones' school year as its ending year (2027 is 2026-27). Default: the current zones.
resolution ({"display", "full"}, default "display") --
"display": simplified polygons for maps, much smaller;"full": the source polygons the point lookup uses.geometry (bool, default True) --
Truereturns a geopandasGeoDataFrame(needs thegeoextra:pip install georgiacivicdata[geo]);Falsereturns the attributes as a plain data frame.backend ({"pandas", "polars"}, optional) -- With
geometry=False, the kind of data frame to return (default: thebackendoption). Geometry is always aGeoDataFrame.
- Returns:
geopandas.GeoDataFrame or DataFrame -- One row per zone, with columns
year(integer),district_code,district_name,school_code,school_name,zone_level,grade_low,grade_high("pk","k","01"..."12"),method(how the zone was built),accuracy_class,currency_status,boundary_vintage,source_url,retrieved_on(date),area_sq_mi, the bounding box (bbox_xmin,bbox_ymin,bbox_xmax,bbox_ymax),source_school_name(the name as the district's map spells it), thenpositional_rmse_m,currency_note,source_publisher,nces_school_id,district_census_id,nces_lea_idand thegeometry(WGS 84). The API's disclaimer ismeta(x)["note"].
See also
locatethe zones a point falls in.
school_zone_statusschools without a zone.
describewith
"school_attendance_zones", every field.
Examples
>>> import georgiacivicdata as gcd >>> zones = gcd.school_zones( ... district="Atlanta Public Schools", zone_level="high" ... ) >>> zones.plot(column="school_name") >>> gcd.school_zones(district_code="630", geometry=False)