[{"data":1,"prerenderedAt":6792},["ShallowReactive",2],{"doc-\u002Ftroubleshooting\u002Fgeopandas-not-reading-shapefile":3,"nav-troubleshooting":2549},{"id":4,"title":5,"body":6,"description":2542,"extension":2543,"meta":2544,"navigation":186,"path":2545,"seo":2546,"stem":2547,"__hash__":2548},"content\u002Ftroubleshooting\u002Fgeopandas-not-reading-shapefile.md","GeoPandas Not Reading Shapefile: Common Causes and Fixes",{"type":7,"value":8,"toc":2499},"minimark",[9,14,23,39,42,81,84,88,91,132,136,144,150,153,253,256,275,282,286,289,306,309,323,331,532,535,539,542,545,562,565,719,726,730,736,739,802,805,809,819,833,836,1019,1031,1035,1038,1046,1049,1053,1056,1074,1077,1196,1207,1211,1214,1225,1231,1234,1248,1251,1255,1258,1261,1275,1278,1397,1400,1404,1407,1527,1530,1534,1541,1630,1634,1824,1828,1911,1915,2112,2116,2266,2270,2273,2315,2318,2321,2338,2342,2346,2349,2353,2359,2363,2366,2370,2373,2387,2390,2394,2402,2405,2419,2425,2429,2433,2439,2448,2458,2467,2470,2474,2484,2492,2495],[10,11,13],"h2",{"id":12},"problem-statement","Problem statement",[15,16,17,18,22],"p",{},"A common GIS problem is that ",[19,20,21],"code",{},"geopandas.read_file()"," fails when you try to open a shapefile. In practice, this usually looks like one of these cases:",[24,25,26,30,33,36],"ul",{},[27,28,29],"li",{},"GeoPandas throws an error instead of loading the data",[27,31,32],{},"the shapefile opens, but attributes are missing",[27,34,35],{},"the file path looks correct, but Python says the file does not exist",[27,37,38],{},"the same data opens in one tool but not in another",[15,40,41],{},"If you are trying to fix GeoPandas not reading a shapefile, the cause is usually one of these issues:",[24,43,44,47,57,60,63,72,75,78],{},[27,45,46],{},"opening the wrong file",[27,48,49,50,53,54],{},"missing shapefile components like ",[19,51,52],{},".shx"," or ",[19,55,56],{},".dbf",[27,58,59],{},"bad file paths",[27,61,62],{},"ZIP or compressed input problems",[27,64,65,53,68,71],{},[19,66,67],{},"fiona",[19,69,70],{},"pyogrio"," environment issues",[27,73,74],{},"encoding problems",[27,76,77],{},"corrupted or incomplete shapefiles",[27,79,80],{},"geometry or CRS issues that appear after reading",[15,82,83],{},"The goal is to identify which category the problem belongs to and apply the right fix quickly.",[10,85,87],{"id":86},"quick-answer","Quick answer",[15,89,90],{},"Most shapefile read failures in GeoPandas are fixed by checking these items in order:",[92,93,94,101,113,116,119,126,129],"ol",{},[27,95,96,97,100],{},"Make sure you are opening the ",[19,98,99],{},".shp"," file, not the folder or a sidecar file.",[27,102,103,104,106,107,109,110,112],{},"Confirm the shapefile includes at least ",[19,105,99],{},", ",[19,108,52],{},", and ",[19,111,56],{},".",[27,114,115],{},"Use an absolute file path and verify it exists.",[27,117,118],{},"Extract the shapefile if it is inside a ZIP file.",[27,120,121,122,53,124,112],{},"Confirm GeoPandas can use a working read engine such as ",[19,123,67],{},[19,125,70],{},[27,127,128],{},"Test the same shapefile in QGIS.",[27,130,131],{},"Check for corruption, encoding problems, or incomplete exports.",[10,133,135],{"id":134},"step-by-step-solution","Step-by-step solution",[137,138,140,141,143],"h3",{"id":139},"_1-confirm-you-are-opening-the-shp-file","1. Confirm you are opening the ",[19,142,99],{}," file",[15,145,146,147,149],{},"A shapefile consists of multiple files. In the common local-folder case, the file you pass to GeoPandas is the ",[19,148,99],{}," file.",[15,151,152],{},"Correct:",[154,155,160],"pre",{"className":156,"code":157,"language":158,"meta":159,"style":159},"language-python shiki shiki-themes material-theme-lighter github-light github-dark","import geopandas as gpd\n\ngdf = gpd.read_file(r\"C:\\gis\\data\\parcels.shp\")\n","python","",[19,161,162,181,188],{"__ignoreMap":159},[163,164,167,171,175,178],"span",{"class":165,"line":166},"line",1,[163,168,170],{"class":169},"sVHd0","import",[163,172,174],{"class":173},"su5hD"," geopandas ",[163,176,177],{"class":169},"as",[163,179,180],{"class":173}," gpd\n",[163,182,184],{"class":165,"line":183},2,[163,185,187],{"emptyLinePlaceholder":186},true,"\n",[163,189,191,194,198,201,204,208,211,215,219,223,227,230,234,237,240,243,245,248,250],{"class":165,"line":190},3,[163,192,193],{"class":173},"gdf ",[163,195,197],{"class":196},"smGrS","=",[163,199,200],{"class":173}," gpd",[163,202,112],{"class":203},"sP7_E",[163,205,207],{"class":206},"slqww","read_file",[163,209,210],{"class":203},"(",[163,212,214],{"class":213},"sbsja","r",[163,216,218],{"class":217},"sjJ54","\"",[163,220,222],{"class":221},"sQRbd","C:",[163,224,226],{"class":225},"sjYin","\\g",[163,228,229],{"class":221},"is",[163,231,233],{"class":232},"stzsN","\\d",[163,235,236],{"class":221},"ata",[163,238,239],{"class":225},"\\p",[163,241,242],{"class":221},"arcels",[163,244,112],{"class":232},[163,246,247],{"class":221},"shp",[163,249,218],{"class":217},[163,251,252],{"class":203},")\n",[15,254,255],{},"Common mistakes:",[24,257,258,261,267,272],{},[27,259,260],{},"passing the folder path",[27,262,263,264],{},"passing ",[19,265,266],{},"parcels.dbf",[27,268,263,269],{},[19,270,271],{},"parcels.shx",[27,273,274],{},"passing a ZIP file path without proper handling",[15,276,277,278,281],{},"The input should usually look like ",[19,279,280],{},"parcels.shp",", not just the directory containing the files.",[137,283,285],{"id":284},"_2-check-that-the-required-shapefile-components-are-present","2. Check that the required shapefile components are present",[15,287,288],{},"A valid shapefile usually needs these files in the same folder with the same base name:",[24,290,291,296,301],{},[27,292,293,295],{},[19,294,99],{}," — geometry",[27,297,298,300],{},[19,299,52],{}," — shape index",[27,302,303,305],{},[19,304,56],{}," — attribute table",[15,307,308],{},"Common optional files:",[24,310,311,317],{},[27,312,313,316],{},[19,314,315],{},".prj"," — coordinate reference system",[27,318,319,322],{},[19,320,321],{},".cpg"," — text encoding",[15,324,325,326,53,328,330],{},"If ",[19,327,52],{},[19,329,56],{}," is missing, GeoPandas may fail to read the file or load incomplete data.",[154,332,334],{"className":156,"code":333,"language":158,"meta":159,"style":159},"from pathlib import Path\n\nshp_path = Path(r\"C:\\gis\\data\\parcels.shp\")\nbase = shp_path.with_suffix(\"\")\n\nrequired = [\".shp\", \".shx\", \".dbf\"]\nfor ext in required:\n    part = base.with_suffix(ext)\n    print(part, \"exists:\", part.exists())\n",[19,335,336,349,353,391,414,419,458,476,498],{"__ignoreMap":159},[163,337,338,341,344,346],{"class":165,"line":166},[163,339,340],{"class":169},"from",[163,342,343],{"class":173}," pathlib ",[163,345,170],{"class":169},[163,347,348],{"class":173}," Path\n",[163,350,351],{"class":165,"line":183},[163,352,187],{"emptyLinePlaceholder":186},[163,354,355,358,360,363,365,367,369,371,373,375,377,379,381,383,385,387,389],{"class":165,"line":190},[163,356,357],{"class":173},"shp_path ",[163,359,197],{"class":196},[163,361,362],{"class":206}," Path",[163,364,210],{"class":203},[163,366,214],{"class":213},[163,368,218],{"class":217},[163,370,222],{"class":221},[163,372,226],{"class":225},[163,374,229],{"class":221},[163,376,233],{"class":232},[163,378,236],{"class":221},[163,380,239],{"class":225},[163,382,242],{"class":221},[163,384,112],{"class":232},[163,386,247],{"class":221},[163,388,218],{"class":217},[163,390,252],{"class":203},[163,392,394,397,399,402,404,407,409,412],{"class":165,"line":393},4,[163,395,396],{"class":173},"base ",[163,398,197],{"class":196},[163,400,401],{"class":173}," shp_path",[163,403,112],{"class":203},[163,405,406],{"class":206},"with_suffix",[163,408,210],{"class":203},[163,410,411],{"class":217},"\"\"",[163,413,252],{"class":203},[163,415,417],{"class":165,"line":416},5,[163,418,187],{"emptyLinePlaceholder":186},[163,420,422,425,427,430,432,435,437,440,443,445,447,449,451,453,455],{"class":165,"line":421},6,[163,423,424],{"class":173},"required ",[163,426,197],{"class":196},[163,428,429],{"class":203}," [",[163,431,218],{"class":217},[163,433,99],{"class":434},"s_sjI",[163,436,218],{"class":217},[163,438,439],{"class":203},",",[163,441,442],{"class":217}," \"",[163,444,52],{"class":434},[163,446,218],{"class":217},[163,448,439],{"class":203},[163,450,442],{"class":217},[163,452,56],{"class":434},[163,454,218],{"class":217},[163,456,457],{"class":203},"]\n",[163,459,461,464,467,470,473],{"class":165,"line":460},7,[163,462,463],{"class":169},"for",[163,465,466],{"class":173}," ext ",[163,468,469],{"class":169},"in",[163,471,472],{"class":173}," required",[163,474,475],{"class":203},":\n",[163,477,479,482,484,487,489,491,493,496],{"class":165,"line":478},8,[163,480,481],{"class":173},"    part ",[163,483,197],{"class":196},[163,485,486],{"class":173}," base",[163,488,112],{"class":203},[163,490,406],{"class":206},[163,492,210],{"class":203},[163,494,495],{"class":206},"ext",[163,497,252],{"class":203},[163,499,501,505,507,510,512,514,517,519,521,524,526,529],{"class":165,"line":500},9,[163,502,504],{"class":503},"sptTA","    print",[163,506,210],{"class":203},[163,508,509],{"class":206},"part",[163,511,439],{"class":203},[163,513,442],{"class":217},[163,515,516],{"class":434},"exists:",[163,518,218],{"class":217},[163,520,439],{"class":203},[163,522,523],{"class":206}," part",[163,525,112],{"class":203},[163,527,528],{"class":206},"exists",[163,530,531],{"class":203},"())\n",[15,533,534],{},"If one of the required files is missing, get the full shapefile set again or re-export it from the source.",[137,536,538],{"id":537},"_3-verify-the-file-path-is-correct","3. Verify the file path is correct",[15,540,541],{},"Many shapefile read problems are simple path issues.",[15,543,544],{},"Common causes:",[24,546,547,550,553,556,559],{},[27,548,549],{},"wrong working directory",[27,551,552],{},"typo in filename",[27,554,555],{},"file renamed or moved",[27,557,558],{},"Windows backslash escaping problems",[27,560,561],{},"network path not available",[15,563,564],{},"Use an absolute path and print it before reading.",[154,566,568],{"className":156,"code":567,"language":158,"meta":159,"style":159},"from pathlib import Path\nimport geopandas as gpd\n\nshp_path = Path(r\"C:\\gis\\data\\parcels.shp\").resolve()\nprint(\"Reading:\", shp_path)\nprint(\"Exists:\", shp_path.exists())\n\ngdf = gpd.read_file(shp_path)\nprint(gdf.head())\n",[19,569,570,580,590,594,637,657,680,684,703],{"__ignoreMap":159},[163,571,572,574,576,578],{"class":165,"line":166},[163,573,340],{"class":169},[163,575,343],{"class":173},[163,577,170],{"class":169},[163,579,348],{"class":173},[163,581,582,584,586,588],{"class":165,"line":183},[163,583,170],{"class":169},[163,585,174],{"class":173},[163,587,177],{"class":169},[163,589,180],{"class":173},[163,591,592],{"class":165,"line":190},[163,593,187],{"emptyLinePlaceholder":186},[163,595,596,598,600,602,604,606,608,610,612,614,616,618,620,622,624,626,628,631,634],{"class":165,"line":393},[163,597,357],{"class":173},[163,599,197],{"class":196},[163,601,362],{"class":206},[163,603,210],{"class":203},[163,605,214],{"class":213},[163,607,218],{"class":217},[163,609,222],{"class":221},[163,611,226],{"class":225},[163,613,229],{"class":221},[163,615,233],{"class":232},[163,617,236],{"class":221},[163,619,239],{"class":225},[163,621,242],{"class":221},[163,623,112],{"class":232},[163,625,247],{"class":221},[163,627,218],{"class":217},[163,629,630],{"class":203},").",[163,632,633],{"class":206},"resolve",[163,635,636],{"class":203},"()\n",[163,638,639,642,644,646,649,651,653,655],{"class":165,"line":416},[163,640,641],{"class":503},"print",[163,643,210],{"class":203},[163,645,218],{"class":217},[163,647,648],{"class":434},"Reading:",[163,650,218],{"class":217},[163,652,439],{"class":203},[163,654,401],{"class":206},[163,656,252],{"class":203},[163,658,659,661,663,665,668,670,672,674,676,678],{"class":165,"line":421},[163,660,641],{"class":503},[163,662,210],{"class":203},[163,664,218],{"class":217},[163,666,667],{"class":434},"Exists:",[163,669,218],{"class":217},[163,671,439],{"class":203},[163,673,401],{"class":206},[163,675,112],{"class":203},[163,677,528],{"class":206},[163,679,531],{"class":203},[163,681,682],{"class":165,"line":460},[163,683,187],{"emptyLinePlaceholder":186},[163,685,686,688,690,692,694,696,698,701],{"class":165,"line":478},[163,687,193],{"class":173},[163,689,197],{"class":196},[163,691,200],{"class":173},[163,693,112],{"class":203},[163,695,207],{"class":206},[163,697,210],{"class":203},[163,699,700],{"class":206},"shp_path",[163,702,252],{"class":203},[163,704,705,707,709,712,714,717],{"class":165,"line":500},[163,706,641],{"class":503},[163,708,210],{"class":203},[163,710,711],{"class":206},"gdf",[163,713,112],{"class":203},[163,715,716],{"class":206},"head",[163,718,531],{"class":203},[15,720,721,722,725],{},"Using a raw string like ",[19,723,724],{},"r\"C:\\gis\\data\\parcels.shp\""," helps avoid backslash escape issues on Windows.",[137,727,729],{"id":728},"_4-check-whether-the-shapefile-is-compressed","4. Check whether the shapefile is compressed",[15,731,732,733,735],{},"A common real-world case is receiving a shapefile as an emailed ZIP or downloading one from a portal. For troubleshooting, extract the ZIP first and read the ",[19,734,99],{}," from the extracted folder.",[15,737,738],{},"Better for debugging:",[154,740,742],{"className":156,"code":741,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\ngdf = gpd.read_file(r\"C:\\gis\\unzipped\\roads.shp\")\n",[19,743,744,754,758],{"__ignoreMap":159},[163,745,746,748,750,752],{"class":165,"line":166},[163,747,170],{"class":169},[163,749,174],{"class":173},[163,751,177],{"class":169},[163,753,180],{"class":173},[163,755,756],{"class":165,"line":183},[163,757,187],{"emptyLinePlaceholder":186},[163,759,760,762,764,766,768,770,772,774,776,778,780,782,785,788,791,794,796,798,800],{"class":165,"line":190},[163,761,193],{"class":173},[163,763,197],{"class":196},[163,765,200],{"class":173},[163,767,112],{"class":203},[163,769,207],{"class":206},[163,771,210],{"class":203},[163,773,214],{"class":213},[163,775,218],{"class":217},[163,777,222],{"class":221},[163,779,226],{"class":225},[163,781,229],{"class":221},[163,783,784],{"class":225},"\\u",[163,786,787],{"class":221},"nzipped",[163,789,790],{"class":225},"\\r",[163,792,793],{"class":221},"oads",[163,795,112],{"class":232},[163,797,247],{"class":221},[163,799,218],{"class":217},[163,801,252],{"class":203},[15,803,804],{},"If the file only fails when zipped, the problem is with how the compressed source is being accessed, not necessarily the shapefile itself.",[137,806,808],{"id":807},"_5-confirm-geopandas-and-its-file-reading-engine-are-installed-correctly","5. Confirm GeoPandas and its file-reading engine are installed correctly",[15,810,811,813,814,53,816,818],{},[19,812,21],{}," uses a backend engine, typically ",[19,815,70],{},[19,817,67],{},". If that engine is broken or missing, you may see:",[24,820,821,824,827,830],{},[27,822,823],{},"import errors",[27,825,826],{},"driver errors",[27,828,829],{},"file open failures",[27,831,832],{},"inconsistent behavior across environments",[15,834,835],{},"Quick diagnostic:",[154,837,839],{"className":156,"code":838,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\nprint(\"GeoPandas version:\", gpd.__version__)\n\ntry:\n    import pyogrio\n    print(\"pyogrio version:\", pyogrio.__version__)\nexcept ImportError:\n    print(\"pyogrio not installed\")\n\ntry:\n    import fiona\n    print(\"fiona version:\", fiona.__version__)\nexcept ImportError:\n    print(\"fiona not installed\")\n",[19,840,841,851,855,880,884,891,899,923,934,949,954,961,969,994,1003],{"__ignoreMap":159},[163,842,843,845,847,849],{"class":165,"line":166},[163,844,170],{"class":169},[163,846,174],{"class":173},[163,848,177],{"class":169},[163,850,180],{"class":173},[163,852,853],{"class":165,"line":183},[163,854,187],{"emptyLinePlaceholder":186},[163,856,857,859,861,863,866,868,870,872,874,878],{"class":165,"line":190},[163,858,641],{"class":503},[163,860,210],{"class":203},[163,862,218],{"class":217},[163,864,865],{"class":434},"GeoPandas version:",[163,867,218],{"class":217},[163,869,439],{"class":203},[163,871,200],{"class":206},[163,873,112],{"class":203},[163,875,877],{"class":876},"s_hVV","__version__",[163,879,252],{"class":203},[163,881,882],{"class":165,"line":393},[163,883,187],{"emptyLinePlaceholder":186},[163,885,886,889],{"class":165,"line":416},[163,887,888],{"class":169},"try",[163,890,475],{"class":203},[163,892,893,896],{"class":165,"line":421},[163,894,895],{"class":169},"    import",[163,897,898],{"class":173}," pyogrio\n",[163,900,901,903,905,907,910,912,914,917,919,921],{"class":165,"line":460},[163,902,504],{"class":503},[163,904,210],{"class":203},[163,906,218],{"class":217},[163,908,909],{"class":434},"pyogrio version:",[163,911,218],{"class":217},[163,913,439],{"class":203},[163,915,916],{"class":206}," pyogrio",[163,918,112],{"class":203},[163,920,877],{"class":876},[163,922,252],{"class":203},[163,924,925,928,932],{"class":165,"line":478},[163,926,927],{"class":169},"except",[163,929,931],{"class":930},"sZMiF"," ImportError",[163,933,475],{"class":203},[163,935,936,938,940,942,945,947],{"class":165,"line":500},[163,937,504],{"class":503},[163,939,210],{"class":203},[163,941,218],{"class":217},[163,943,944],{"class":434},"pyogrio not installed",[163,946,218],{"class":217},[163,948,252],{"class":203},[163,950,952],{"class":165,"line":951},10,[163,953,187],{"emptyLinePlaceholder":186},[163,955,957,959],{"class":165,"line":956},11,[163,958,888],{"class":169},[163,960,475],{"class":203},[163,962,964,966],{"class":165,"line":963},12,[163,965,895],{"class":169},[163,967,968],{"class":173}," fiona\n",[163,970,972,974,976,978,981,983,985,988,990,992],{"class":165,"line":971},13,[163,973,504],{"class":503},[163,975,210],{"class":203},[163,977,218],{"class":217},[163,979,980],{"class":434},"fiona version:",[163,982,218],{"class":217},[163,984,439],{"class":203},[163,986,987],{"class":206}," fiona",[163,989,112],{"class":203},[163,991,877],{"class":876},[163,993,252],{"class":203},[163,995,997,999,1001],{"class":165,"line":996},14,[163,998,927],{"class":169},[163,1000,931],{"class":930},[163,1002,475],{"class":203},[163,1004,1006,1008,1010,1012,1015,1017],{"class":165,"line":1005},15,[163,1007,504],{"class":503},[163,1009,210],{"class":203},[163,1011,218],{"class":217},[163,1013,1014],{"class":434},"fiona not installed",[163,1016,218],{"class":217},[163,1018,252],{"class":203},[15,1020,1021,1022,1024,1025,1027,1028,1030],{},"If neither ",[19,1023,70],{}," nor ",[19,1026,67],{}," is available, ",[19,1029,21],{}," will not be able to read shapefiles until the environment is fixed.",[137,1032,1034],{"id":1033},"_6-test-the-shapefile-in-qgis-or-another-gis-tool","6. Test the shapefile in QGIS or another GIS tool",[15,1036,1037],{},"This is one of the fastest ways to separate data problems from Python environment problems.",[24,1039,1040,1043],{},[27,1041,1042],{},"If the file does not open in QGIS, the shapefile is probably damaged or incomplete.",[27,1044,1045],{},"If it opens in QGIS but fails in Python, check your environment, engine, or encoding handling.",[15,1047,1048],{},"This step saves time because it tells you whether to debug the file or your Python setup.",[137,1050,1052],{"id":1051},"_7-check-for-shapefile-corruption-or-incomplete-export","7. Check for shapefile corruption or incomplete export",[15,1054,1055],{},"Common signs of corruption:",[24,1057,1058,1065,1068,1071],{},[27,1059,1060,1061,53,1063],{},"missing ",[19,1062,52],{},[19,1064,56],{},[27,1066,1067],{},"zero-byte files",[27,1069,1070],{},"partial download from email or cloud storage",[27,1072,1073],{},"export interrupted from another GIS tool",[15,1075,1076],{},"You can inspect file sizes quickly:",[154,1078,1080],{"className":156,"code":1079,"language":158,"meta":159,"style":159},"from pathlib import Path\n\nfolder = Path(r\"C:\\gis\\data\")\nfor path in folder.glob(\"parcels.*\"):\n    print(path.name, path.stat().st_size, \"bytes\")\n",[19,1081,1082,1092,1096,1125,1154],{"__ignoreMap":159},[163,1083,1084,1086,1088,1090],{"class":165,"line":166},[163,1085,340],{"class":169},[163,1087,343],{"class":173},[163,1089,170],{"class":169},[163,1091,348],{"class":173},[163,1093,1094],{"class":165,"line":183},[163,1095,187],{"emptyLinePlaceholder":186},[163,1097,1098,1101,1103,1105,1107,1109,1111,1113,1115,1117,1119,1121,1123],{"class":165,"line":190},[163,1099,1100],{"class":173},"folder ",[163,1102,197],{"class":196},[163,1104,362],{"class":206},[163,1106,210],{"class":203},[163,1108,214],{"class":213},[163,1110,218],{"class":217},[163,1112,222],{"class":221},[163,1114,226],{"class":225},[163,1116,229],{"class":221},[163,1118,233],{"class":232},[163,1120,236],{"class":221},[163,1122,218],{"class":217},[163,1124,252],{"class":203},[163,1126,1127,1129,1132,1134,1137,1139,1142,1144,1146,1149,1151],{"class":165,"line":393},[163,1128,463],{"class":169},[163,1130,1131],{"class":173}," path ",[163,1133,469],{"class":169},[163,1135,1136],{"class":173}," folder",[163,1138,112],{"class":203},[163,1140,1141],{"class":206},"glob",[163,1143,210],{"class":203},[163,1145,218],{"class":217},[163,1147,1148],{"class":434},"parcels.*",[163,1150,218],{"class":217},[163,1152,1153],{"class":203},"):\n",[163,1155,1156,1158,1160,1163,1165,1169,1171,1174,1176,1179,1182,1185,1187,1189,1192,1194],{"class":165,"line":416},[163,1157,504],{"class":503},[163,1159,210],{"class":203},[163,1161,1162],{"class":206},"path",[163,1164,112],{"class":203},[163,1166,1168],{"class":1167},"skxfh","name",[163,1170,439],{"class":203},[163,1172,1173],{"class":206}," path",[163,1175,112],{"class":203},[163,1177,1178],{"class":206},"stat",[163,1180,1181],{"class":203},"().",[163,1183,1184],{"class":1167},"st_size",[163,1186,439],{"class":203},[163,1188,442],{"class":217},[163,1190,1191],{"class":434},"bytes",[163,1193,218],{"class":217},[163,1195,252],{"class":203},[15,1197,1198,1199,106,1201,1203,1204,1206],{},"A zero-byte ",[19,1200,99],{},[19,1202,52],{},", or ",[19,1205,56],{}," is a clear problem. If possible, re-download or re-export the shapefile.",[137,1208,1210],{"id":1209},"_8-look-for-encoding-and-attribute-table-issues","8. Look for encoding and attribute table issues",[15,1212,1213],{},"Older shapefiles often have text encoding problems. This may appear as:",[24,1215,1216,1219,1222],{},[27,1217,1218],{},"unreadable attribute text",[27,1220,1221],{},"errors while reading",[27,1223,1224],{},"strange characters in field values",[15,1226,1227,1228,1230],{},"The ",[19,1229,321],{}," file may define encoding. If it is missing or wrong, the DBF table may not decode correctly.",[15,1232,1233],{},"Practical next steps:",[24,1235,1236,1239,1242,1245],{},[27,1237,1238],{},"test the shapefile in QGIS",[27,1240,1241],{},"try the other GeoPandas engine",[27,1243,1244],{},"re-export the layer from QGIS or the source GIS tool",[27,1246,1247],{},"save to a newer format like GeoPackage if possible",[15,1249,1250],{},"If the file opens in QGIS but attribute text looks broken in Python, suspect encoding.",[137,1252,1254],{"id":1253},"_9-check-for-geometry-related-issues-after-reading","9. Check for geometry-related issues after reading",[15,1256,1257],{},"Sometimes the shapefile reads successfully, but later operations fail. That is different from a true file-open error.",[15,1259,1260],{},"Examples:",[24,1262,1263,1266,1269,1272],{},[27,1264,1265],{},"invalid geometries",[27,1267,1268],{},"null geometries",[27,1270,1271],{},"mixed geometry types",[27,1273,1274],{},"bad CRS metadata",[15,1276,1277],{},"Quick checks after reading:",[154,1279,1281],{"className":156,"code":1280,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\ngdf = gpd.read_file(r\"C:\\gis\\data\\parcels.shp\")\nprint(gdf.crs)\nprint(gdf.geometry.isna().sum())\nprint(gdf.is_valid.value_counts())\n",[19,1282,1283,1293,1297,1337,1352,1377],{"__ignoreMap":159},[163,1284,1285,1287,1289,1291],{"class":165,"line":166},[163,1286,170],{"class":169},[163,1288,174],{"class":173},[163,1290,177],{"class":169},[163,1292,180],{"class":173},[163,1294,1295],{"class":165,"line":183},[163,1296,187],{"emptyLinePlaceholder":186},[163,1298,1299,1301,1303,1305,1307,1309,1311,1313,1315,1317,1319,1321,1323,1325,1327,1329,1331,1333,1335],{"class":165,"line":190},[163,1300,193],{"class":173},[163,1302,197],{"class":196},[163,1304,200],{"class":173},[163,1306,112],{"class":203},[163,1308,207],{"class":206},[163,1310,210],{"class":203},[163,1312,214],{"class":213},[163,1314,218],{"class":217},[163,1316,222],{"class":221},[163,1318,226],{"class":225},[163,1320,229],{"class":221},[163,1322,233],{"class":232},[163,1324,236],{"class":221},[163,1326,239],{"class":225},[163,1328,242],{"class":221},[163,1330,112],{"class":232},[163,1332,247],{"class":221},[163,1334,218],{"class":217},[163,1336,252],{"class":203},[163,1338,1339,1341,1343,1345,1347,1350],{"class":165,"line":393},[163,1340,641],{"class":503},[163,1342,210],{"class":203},[163,1344,711],{"class":206},[163,1346,112],{"class":203},[163,1348,1349],{"class":1167},"crs",[163,1351,252],{"class":203},[163,1353,1354,1356,1358,1360,1362,1365,1367,1370,1372,1375],{"class":165,"line":416},[163,1355,641],{"class":503},[163,1357,210],{"class":203},[163,1359,711],{"class":206},[163,1361,112],{"class":203},[163,1363,1364],{"class":1167},"geometry",[163,1366,112],{"class":203},[163,1368,1369],{"class":206},"isna",[163,1371,1181],{"class":203},[163,1373,1374],{"class":206},"sum",[163,1376,531],{"class":203},[163,1378,1379,1381,1383,1385,1387,1390,1392,1395],{"class":165,"line":421},[163,1380,641],{"class":503},[163,1382,210],{"class":203},[163,1384,711],{"class":206},[163,1386,112],{"class":203},[163,1388,1389],{"class":1167},"is_valid",[163,1391,112],{"class":203},[163,1393,1394],{"class":206},"value_counts",[163,1396,531],{"class":203},[15,1398,1399],{},"If the file reads but behaves incorrectly, the issue may be geometry quality or CRS handling rather than file access.",[137,1401,1403],{"id":1402},"_10-try-forcing-a-different-engine","10. Try forcing a different engine",[15,1405,1406],{},"If you get a Fiona open error or a Pyogrio read error, try the other engine.",[154,1408,1410],{"className":156,"code":1409,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\npath = r\"C:\\gis\\data\\parcels.shp\"\n\ngdf_fiona = gpd.read_file(path, engine=\"fiona\")\ngdf_pyogrio = gpd.read_file(path, engine=\"pyogrio\")\n",[19,1411,1412,1422,1426,1459,1463,1496],{"__ignoreMap":159},[163,1413,1414,1416,1418,1420],{"class":165,"line":166},[163,1415,170],{"class":169},[163,1417,174],{"class":173},[163,1419,177],{"class":169},[163,1421,180],{"class":173},[163,1423,1424],{"class":165,"line":183},[163,1425,187],{"emptyLinePlaceholder":186},[163,1427,1428,1431,1433,1436,1438,1440,1442,1444,1446,1448,1450,1452,1454,1456],{"class":165,"line":190},[163,1429,1430],{"class":173},"path ",[163,1432,197],{"class":196},[163,1434,1435],{"class":213}," r",[163,1437,218],{"class":217},[163,1439,222],{"class":221},[163,1441,226],{"class":225},[163,1443,229],{"class":221},[163,1445,233],{"class":232},[163,1447,236],{"class":221},[163,1449,239],{"class":225},[163,1451,242],{"class":221},[163,1453,112],{"class":232},[163,1455,247],{"class":221},[163,1457,1458],{"class":217},"\"\n",[163,1460,1461],{"class":165,"line":393},[163,1462,187],{"emptyLinePlaceholder":186},[163,1464,1465,1468,1470,1472,1474,1476,1478,1480,1482,1486,1488,1490,1492,1494],{"class":165,"line":416},[163,1466,1467],{"class":173},"gdf_fiona ",[163,1469,197],{"class":196},[163,1471,200],{"class":173},[163,1473,112],{"class":203},[163,1475,207],{"class":206},[163,1477,210],{"class":203},[163,1479,1162],{"class":206},[163,1481,439],{"class":203},[163,1483,1485],{"class":1484},"s99_P"," engine",[163,1487,197],{"class":196},[163,1489,218],{"class":217},[163,1491,67],{"class":434},[163,1493,218],{"class":217},[163,1495,252],{"class":203},[163,1497,1498,1501,1503,1505,1507,1509,1511,1513,1515,1517,1519,1521,1523,1525],{"class":165,"line":421},[163,1499,1500],{"class":173},"gdf_pyogrio ",[163,1502,197],{"class":196},[163,1504,200],{"class":173},[163,1506,112],{"class":203},[163,1508,207],{"class":206},[163,1510,210],{"class":203},[163,1512,1162],{"class":206},[163,1514,439],{"class":203},[163,1516,1485],{"class":1484},[163,1518,197],{"class":196},[163,1520,218],{"class":217},[163,1522,70],{"class":434},[163,1524,218],{"class":217},[163,1526,252],{"class":203},[15,1528,1529],{},"If one engine works and the other fails, you have narrowed the issue to the backend rather than the shapefile path itself.",[10,1531,1533],{"id":1532},"code-examples","Code examples",[137,1535,1537,1538,1540],{"id":1536},"example-1-basic-geopandasread_file-with-an-absolute-path","Example 1: Basic ",[19,1539,21],{}," with an absolute path",[154,1542,1544],{"className":156,"code":1543,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\ngdf = gpd.read_file(r\"C:\\gis\\data\\buildings.shp\")\nprint(gdf.head())\nprint(gdf.crs)\n",[19,1545,1546,1556,1560,1602,1616],{"__ignoreMap":159},[163,1547,1548,1550,1552,1554],{"class":165,"line":166},[163,1549,170],{"class":169},[163,1551,174],{"class":173},[163,1553,177],{"class":169},[163,1555,180],{"class":173},[163,1557,1558],{"class":165,"line":183},[163,1559,187],{"emptyLinePlaceholder":186},[163,1561,1562,1564,1566,1568,1570,1572,1574,1576,1578,1580,1582,1584,1586,1588,1591,1594,1596,1598,1600],{"class":165,"line":190},[163,1563,193],{"class":173},[163,1565,197],{"class":196},[163,1567,200],{"class":173},[163,1569,112],{"class":203},[163,1571,207],{"class":206},[163,1573,210],{"class":203},[163,1575,214],{"class":213},[163,1577,218],{"class":217},[163,1579,222],{"class":221},[163,1581,226],{"class":225},[163,1583,229],{"class":221},[163,1585,233],{"class":232},[163,1587,236],{"class":221},[163,1589,1590],{"class":232},"\\b",[163,1592,1593],{"class":221},"uildings",[163,1595,112],{"class":232},[163,1597,247],{"class":221},[163,1599,218],{"class":217},[163,1601,252],{"class":203},[163,1603,1604,1606,1608,1610,1612,1614],{"class":165,"line":393},[163,1605,641],{"class":503},[163,1607,210],{"class":203},[163,1609,711],{"class":206},[163,1611,112],{"class":203},[163,1613,716],{"class":206},[163,1615,531],{"class":203},[163,1617,1618,1620,1622,1624,1626,1628],{"class":165,"line":416},[163,1619,641],{"class":503},[163,1621,210],{"class":203},[163,1623,711],{"class":206},[163,1625,112],{"class":203},[163,1627,1349],{"class":1167},[163,1629,252],{"class":203},[137,1631,1633],{"id":1632},"example-2-check-whether-all-required-shapefile-parts-exist","Example 2: Check whether all required shapefile parts exist",[154,1635,1637],{"className":156,"code":1636,"language":158,"meta":159,"style":159},"from pathlib import Path\n\nshp_path = Path(r\"C:\\gis\\data\\buildings.shp\")\nbase = shp_path.with_suffix(\"\")\n\nfor ext in [\".shp\", \".shx\", \".dbf\", \".prj\", \".cpg\"]:\n    part = base.with_suffix(ext)\n    print(f\"{part.name}: {part.exists()}\")\n",[19,1638,1639,1649,1653,1689,1707,1711,1762,1780],{"__ignoreMap":159},[163,1640,1641,1643,1645,1647],{"class":165,"line":166},[163,1642,340],{"class":169},[163,1644,343],{"class":173},[163,1646,170],{"class":169},[163,1648,348],{"class":173},[163,1650,1651],{"class":165,"line":183},[163,1652,187],{"emptyLinePlaceholder":186},[163,1654,1655,1657,1659,1661,1663,1665,1667,1669,1671,1673,1675,1677,1679,1681,1683,1685,1687],{"class":165,"line":190},[163,1656,357],{"class":173},[163,1658,197],{"class":196},[163,1660,362],{"class":206},[163,1662,210],{"class":203},[163,1664,214],{"class":213},[163,1666,218],{"class":217},[163,1668,222],{"class":221},[163,1670,226],{"class":225},[163,1672,229],{"class":221},[163,1674,233],{"class":232},[163,1676,236],{"class":221},[163,1678,1590],{"class":232},[163,1680,1593],{"class":221},[163,1682,112],{"class":232},[163,1684,247],{"class":221},[163,1686,218],{"class":217},[163,1688,252],{"class":203},[163,1690,1691,1693,1695,1697,1699,1701,1703,1705],{"class":165,"line":393},[163,1692,396],{"class":173},[163,1694,197],{"class":196},[163,1696,401],{"class":173},[163,1698,112],{"class":203},[163,1700,406],{"class":206},[163,1702,210],{"class":203},[163,1704,411],{"class":217},[163,1706,252],{"class":203},[163,1708,1709],{"class":165,"line":416},[163,1710,187],{"emptyLinePlaceholder":186},[163,1712,1713,1715,1717,1719,1721,1723,1725,1727,1729,1731,1733,1735,1737,1739,1741,1743,1745,1747,1749,1751,1753,1755,1757,1759],{"class":165,"line":421},[163,1714,463],{"class":169},[163,1716,466],{"class":173},[163,1718,469],{"class":169},[163,1720,429],{"class":203},[163,1722,218],{"class":217},[163,1724,99],{"class":434},[163,1726,218],{"class":217},[163,1728,439],{"class":203},[163,1730,442],{"class":217},[163,1732,52],{"class":434},[163,1734,218],{"class":217},[163,1736,439],{"class":203},[163,1738,442],{"class":217},[163,1740,56],{"class":434},[163,1742,218],{"class":217},[163,1744,439],{"class":203},[163,1746,442],{"class":217},[163,1748,315],{"class":434},[163,1750,218],{"class":217},[163,1752,439],{"class":203},[163,1754,442],{"class":217},[163,1756,321],{"class":434},[163,1758,218],{"class":217},[163,1760,1761],{"class":203},"]:\n",[163,1763,1764,1766,1768,1770,1772,1774,1776,1778],{"class":165,"line":460},[163,1765,481],{"class":173},[163,1767,197],{"class":196},[163,1769,486],{"class":173},[163,1771,112],{"class":203},[163,1773,406],{"class":206},[163,1775,210],{"class":203},[163,1777,495],{"class":206},[163,1779,252],{"class":203},[163,1781,1782,1784,1786,1789,1791,1795,1797,1799,1801,1804,1807,1809,1811,1813,1815,1818,1820,1822],{"class":165,"line":478},[163,1783,504],{"class":503},[163,1785,210],{"class":203},[163,1787,1788],{"class":213},"f",[163,1790,218],{"class":434},[163,1792,1794],{"class":1793},"srdBf","{",[163,1796,509],{"class":206},[163,1798,112],{"class":203},[163,1800,1168],{"class":1167},[163,1802,1803],{"class":1793},"}",[163,1805,1806],{"class":434},": ",[163,1808,1794],{"class":1793},[163,1810,509],{"class":206},[163,1812,112],{"class":203},[163,1814,528],{"class":206},[163,1816,1817],{"class":203},"()",[163,1819,1803],{"class":1793},[163,1821,218],{"class":434},[163,1823,252],{"class":203},[137,1825,1827],{"id":1826},"example-3-print-the-exact-file-path-being-used","Example 3: Print the exact file path being used",[154,1829,1831],{"className":156,"code":1830,"language":158,"meta":159,"style":159},"from pathlib import Path\n\nshp_path = Path(\"data\u002Fbuildings.shp\").resolve()\nprint(\"Resolved path:\", shp_path)\nprint(\"Exists:\", shp_path.exists())\n",[19,1832,1833,1843,1847,1870,1889],{"__ignoreMap":159},[163,1834,1835,1837,1839,1841],{"class":165,"line":166},[163,1836,340],{"class":169},[163,1838,343],{"class":173},[163,1840,170],{"class":169},[163,1842,348],{"class":173},[163,1844,1845],{"class":165,"line":183},[163,1846,187],{"emptyLinePlaceholder":186},[163,1848,1849,1851,1853,1855,1857,1859,1862,1864,1866,1868],{"class":165,"line":190},[163,1850,357],{"class":173},[163,1852,197],{"class":196},[163,1854,362],{"class":206},[163,1856,210],{"class":203},[163,1858,218],{"class":217},[163,1860,1861],{"class":434},"data\u002Fbuildings.shp",[163,1863,218],{"class":217},[163,1865,630],{"class":203},[163,1867,633],{"class":206},[163,1869,636],{"class":203},[163,1871,1872,1874,1876,1878,1881,1883,1885,1887],{"class":165,"line":393},[163,1873,641],{"class":503},[163,1875,210],{"class":203},[163,1877,218],{"class":217},[163,1879,1880],{"class":434},"Resolved path:",[163,1882,218],{"class":217},[163,1884,439],{"class":203},[163,1886,401],{"class":206},[163,1888,252],{"class":203},[163,1890,1891,1893,1895,1897,1899,1901,1903,1905,1907,1909],{"class":165,"line":416},[163,1892,641],{"class":503},[163,1894,210],{"class":203},[163,1896,218],{"class":217},[163,1898,667],{"class":434},[163,1900,218],{"class":217},[163,1902,439],{"class":203},[163,1904,401],{"class":206},[163,1906,112],{"class":203},[163,1908,528],{"class":206},[163,1910,531],{"class":203},[137,1912,1914],{"id":1913},"example-4-try-reading-with-different-engines","Example 4: Try reading with different engines",[154,1916,1918],{"className":156,"code":1917,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\npath = r\"C:\\gis\\data\\buildings.shp\"\n\nfor engine in [\"fiona\", \"pyogrio\"]:\n    try:\n        gdf = gpd.read_file(path, engine=engine)\n        print(f\"{engine} worked:\", len(gdf), \"features\")\n    except Exception as e:\n        print(f\"{engine} failed:\", e)\n",[19,1919,1920,1930,1934,1964,1968,1995,2002,2030,2071,2087],{"__ignoreMap":159},[163,1921,1922,1924,1926,1928],{"class":165,"line":166},[163,1923,170],{"class":169},[163,1925,174],{"class":173},[163,1927,177],{"class":169},[163,1929,180],{"class":173},[163,1931,1932],{"class":165,"line":183},[163,1933,187],{"emptyLinePlaceholder":186},[163,1935,1936,1938,1940,1942,1944,1946,1948,1950,1952,1954,1956,1958,1960,1962],{"class":165,"line":190},[163,1937,1430],{"class":173},[163,1939,197],{"class":196},[163,1941,1435],{"class":213},[163,1943,218],{"class":217},[163,1945,222],{"class":221},[163,1947,226],{"class":225},[163,1949,229],{"class":221},[163,1951,233],{"class":232},[163,1953,236],{"class":221},[163,1955,1590],{"class":232},[163,1957,1593],{"class":221},[163,1959,112],{"class":232},[163,1961,247],{"class":221},[163,1963,1458],{"class":217},[163,1965,1966],{"class":165,"line":393},[163,1967,187],{"emptyLinePlaceholder":186},[163,1969,1970,1972,1975,1977,1979,1981,1983,1985,1987,1989,1991,1993],{"class":165,"line":416},[163,1971,463],{"class":169},[163,1973,1974],{"class":173}," engine ",[163,1976,469],{"class":169},[163,1978,429],{"class":203},[163,1980,218],{"class":217},[163,1982,67],{"class":434},[163,1984,218],{"class":217},[163,1986,439],{"class":203},[163,1988,442],{"class":217},[163,1990,70],{"class":434},[163,1992,218],{"class":217},[163,1994,1761],{"class":203},[163,1996,1997,2000],{"class":165,"line":421},[163,1998,1999],{"class":169},"    try",[163,2001,475],{"class":203},[163,2003,2004,2007,2009,2011,2013,2015,2017,2019,2021,2023,2025,2028],{"class":165,"line":460},[163,2005,2006],{"class":173},"        gdf ",[163,2008,197],{"class":196},[163,2010,200],{"class":173},[163,2012,112],{"class":203},[163,2014,207],{"class":206},[163,2016,210],{"class":203},[163,2018,1162],{"class":206},[163,2020,439],{"class":203},[163,2022,1485],{"class":1484},[163,2024,197],{"class":196},[163,2026,2027],{"class":206},"engine",[163,2029,252],{"class":203},[163,2031,2032,2035,2037,2039,2041,2043,2045,2047,2050,2052,2055,2057,2059,2062,2064,2067,2069],{"class":165,"line":478},[163,2033,2034],{"class":503},"        print",[163,2036,210],{"class":203},[163,2038,1788],{"class":213},[163,2040,218],{"class":434},[163,2042,1794],{"class":1793},[163,2044,2027],{"class":206},[163,2046,1803],{"class":1793},[163,2048,2049],{"class":434}," worked:\"",[163,2051,439],{"class":203},[163,2053,2054],{"class":503}," len",[163,2056,210],{"class":203},[163,2058,711],{"class":206},[163,2060,2061],{"class":203},"),",[163,2063,442],{"class":217},[163,2065,2066],{"class":434},"features",[163,2068,218],{"class":217},[163,2070,252],{"class":203},[163,2072,2073,2076,2079,2082,2085],{"class":165,"line":500},[163,2074,2075],{"class":169},"    except",[163,2077,2078],{"class":930}," Exception",[163,2080,2081],{"class":169}," as",[163,2083,2084],{"class":173}," e",[163,2086,475],{"class":203},[163,2088,2089,2091,2093,2095,2097,2099,2101,2103,2106,2108,2110],{"class":165,"line":951},[163,2090,2034],{"class":503},[163,2092,210],{"class":203},[163,2094,1788],{"class":213},[163,2096,218],{"class":434},[163,2098,1794],{"class":1793},[163,2100,2027],{"class":206},[163,2102,1803],{"class":1793},[163,2104,2105],{"class":434}," failed:\"",[163,2107,439],{"class":203},[163,2109,2084],{"class":206},[163,2111,252],{"class":203},[137,2113,2115],{"id":2114},"example-5-catch-and-inspect-the-read-error","Example 5: Catch and inspect the read error",[154,2117,2119],{"className":156,"code":2118,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\npath = r\"C:\\gis\\data\\buildings.shp\"\n\ntry:\n    gdf = gpd.read_file(path)\n    print(gdf.head())\nexcept Exception as e:\n    print(\"Error reading shapefile:\")\n    print(type(e).__name__)\n    print(e)\n",[19,2120,2121,2131,2135,2165,2169,2175,2194,2208,2220,2235,2256],{"__ignoreMap":159},[163,2122,2123,2125,2127,2129],{"class":165,"line":166},[163,2124,170],{"class":169},[163,2126,174],{"class":173},[163,2128,177],{"class":169},[163,2130,180],{"class":173},[163,2132,2133],{"class":165,"line":183},[163,2134,187],{"emptyLinePlaceholder":186},[163,2136,2137,2139,2141,2143,2145,2147,2149,2151,2153,2155,2157,2159,2161,2163],{"class":165,"line":190},[163,2138,1430],{"class":173},[163,2140,197],{"class":196},[163,2142,1435],{"class":213},[163,2144,218],{"class":217},[163,2146,222],{"class":221},[163,2148,226],{"class":225},[163,2150,229],{"class":221},[163,2152,233],{"class":232},[163,2154,236],{"class":221},[163,2156,1590],{"class":232},[163,2158,1593],{"class":221},[163,2160,112],{"class":232},[163,2162,247],{"class":221},[163,2164,1458],{"class":217},[163,2166,2167],{"class":165,"line":393},[163,2168,187],{"emptyLinePlaceholder":186},[163,2170,2171,2173],{"class":165,"line":416},[163,2172,888],{"class":169},[163,2174,475],{"class":203},[163,2176,2177,2180,2182,2184,2186,2188,2190,2192],{"class":165,"line":421},[163,2178,2179],{"class":173},"    gdf ",[163,2181,197],{"class":196},[163,2183,200],{"class":173},[163,2185,112],{"class":203},[163,2187,207],{"class":206},[163,2189,210],{"class":203},[163,2191,1162],{"class":206},[163,2193,252],{"class":203},[163,2195,2196,2198,2200,2202,2204,2206],{"class":165,"line":460},[163,2197,504],{"class":503},[163,2199,210],{"class":203},[163,2201,711],{"class":206},[163,2203,112],{"class":203},[163,2205,716],{"class":206},[163,2207,531],{"class":203},[163,2209,2210,2212,2214,2216,2218],{"class":165,"line":478},[163,2211,927],{"class":169},[163,2213,2078],{"class":930},[163,2215,2081],{"class":169},[163,2217,2084],{"class":173},[163,2219,475],{"class":203},[163,2221,2222,2224,2226,2228,2231,2233],{"class":165,"line":500},[163,2223,504],{"class":503},[163,2225,210],{"class":203},[163,2227,218],{"class":217},[163,2229,2230],{"class":434},"Error reading shapefile:",[163,2232,218],{"class":217},[163,2234,252],{"class":203},[163,2236,2237,2239,2241,2244,2246,2249,2251,2254],{"class":165,"line":951},[163,2238,504],{"class":503},[163,2240,210],{"class":203},[163,2242,2243],{"class":930},"type",[163,2245,210],{"class":203},[163,2247,2248],{"class":206},"e",[163,2250,630],{"class":203},[163,2252,2253],{"class":876},"__name__",[163,2255,252],{"class":203},[163,2257,2258,2260,2262,2264],{"class":165,"line":956},[163,2259,504],{"class":503},[163,2261,210],{"class":203},[163,2263,2248],{"class":206},[163,2265,252],{"class":203},[10,2267,2269],{"id":2268},"explanation","Explanation",[15,2271,2272],{},"Most shapefile read failures in GeoPandas fall into one of five groups:",[24,2274,2275,2284,2294,2304,2310],{},[27,2276,2277,2281,2282,143],{},[2278,2279,2280],"strong",{},"file path errors",": Python is not pointing to the real ",[19,2283,99],{},[27,2285,2286,1806,2289,53,2291,2293],{},[2278,2287,2288],{},"missing shapefile parts",[19,2290,52],{},[19,2292,56],{}," is absent, so the shapefile is incomplete",[27,2295,2296,1806,2299,53,2301,2303],{},[2278,2297,2298],{},"engine or dependency issues",[19,2300,67],{},[19,2302,70],{}," is missing or misconfigured",[27,2305,2306,2309],{},[2278,2307,2308],{},"data corruption",": the shapefile was partially downloaded, exported incorrectly, or damaged",[27,2311,2312,2314],{},[2278,2313,74],{},": legacy DBF text cannot be decoded cleanly",[15,2316,2317],{},"A smaller group of problems happens after the file opens. In those cases, the shapefile is readable, but the data still looks wrong because of invalid geometries, null shapes, or CRS problems.",[15,2319,2320],{},"The fastest diagnostic workflow is:",[92,2322,2323,2326,2329,2332,2335],{},[27,2324,2325],{},"verify the path",[27,2327,2328],{},"verify the shapefile parts",[27,2330,2331],{},"test the file in QGIS",[27,2333,2334],{},"switch engines",[27,2336,2337],{},"suspect corruption or encoding last",[10,2339,2341],{"id":2340},"edge-cases-and-notes","Edge cases and notes",[137,2343,2345],{"id":2344},"reading-shapefiles-from-network-drives","Reading shapefiles from network drives",[15,2347,2348],{},"Network paths can fail because of permissions, sync delays, or file locks. If possible, copy the shapefile to a local folder and test again.",[137,2350,2352],{"id":2351},"very-old-shapefiles","Very old shapefiles",[15,2354,2355,2356,2358],{},"Older shapefiles may have malformed DBF tables, missing ",[19,2357,321],{}," files, or non-UTF encodings. These files often open inconsistently across tools.",[137,2360,2362],{"id":2361},"shapefile-field-name-limits","Shapefile field name limits",[15,2364,2365],{},"Shapefiles limit field names to 10 characters. This usually does not stop reading, but it can make attribute tables look confusing if names were truncated during export.",[137,2367,2369],{"id":2368},"when-the-file-opens-but-data-looks-wrong","When the file opens but data looks wrong",[15,2371,2372],{},"A successful read does not guarantee correct data. Check:",[24,2374,2375,2380,2382,2384],{},[27,2376,2377],{},[19,2378,2379],{},"gdf.crs",[27,2381,1268],{},[27,2383,1265],{},[27,2385,2386],{},"missing or corrupted attributes",[15,2388,2389],{},"This is especially important before spatial joins, reprojection, or export.",[10,2391,2393],{"id":2392},"internal-links","Internal links",[15,2395,2396,2397,112],{},"For a broader overview, see ",[2398,2399,2401],"a",{"href":2400},"\u002Ftroubleshooting\u002Fgeopandas-not-reading-shapefile\u002F","How GeoPandas Reads Vector Data",[15,2403,2404],{},"Related task guides:",[24,2406,2407,2413],{},[27,2408,2409],{},[2398,2410,2412],{"href":2411},"\u002Ftasks\u002Fread-shapefile-geopandas\u002F","How to Read a Shapefile in GeoPandas",[27,2414,2415],{},[2398,2416,2418],{"href":2417},"\u002Ftroubleshooting\u002Ffix-crs-mismatch-geopandas\u002F","How to Fix CRS Mismatch in GeoPandas",[15,2420,2421,2422,112],{},"If the issue looks more like an environment or driver problem, see ",[2398,2423,2424],{"href":2400},"GeoPandas Read File Error: How to Diagnose Driver and Path Problems",[10,2426,2428],{"id":2427},"faq","FAQ",[137,2430,2432],{"id":2431},"why-does-geopandas-say-a-shapefile-does-not-exist-when-the-file-is-in-the-folder","Why does GeoPandas say a shapefile does not exist when the file is in the folder?",[15,2434,2435,2436,2438],{},"Usually because the code is pointing to the wrong path, wrong filename, or wrong working directory. Print the full resolved path and confirm you are passing the ",[19,2437,99],{}," file itself.",[137,2440,2442,2443,53,2445,2447],{"id":2441},"can-geopandas-read-a-shapefile-if-the-shx-or-dbf-file-is-missing","Can GeoPandas read a shapefile if the ",[19,2444,52],{},[19,2446,56],{}," file is missing?",[15,2449,2450,2451,106,2453,109,2455,2457],{},"Usually no. A shapefile normally requires ",[19,2452,99],{},[19,2454,52],{},[19,2456,56],{},". If one is missing, reads may fail or produce incomplete results.",[137,2459,2461,2462,53,2464,2466],{"id":2460},"should-i-use-fiona-or-pyogrio-to-read-shapefiles-in-geopandas","Should I use ",[19,2463,67],{},[19,2465,70],{}," to read shapefiles in GeoPandas?",[15,2468,2469],{},"Either can work. If one engine fails on a specific file, test the other. This is a practical way to isolate engine-specific issues.",[137,2471,2473],{"id":2472},"why-does-the-shapefile-open-in-qgis-but-fail-in-geopandas","Why does the shapefile open in QGIS but fail in GeoPandas?",[15,2475,2476,2477,2480,2481,112],{},"That usually points to a Python environment, engine, or encoding issue rather than a fully broken shapefile. Test both ",[19,2478,2479],{},"engine=\"fiona\""," and ",[19,2482,2483],{},"engine=\"pyogrio\"",[137,2485,2487,2488,2491],{"id":2486},"can-a-corrupted-or-partially-downloaded-shapefile-cause-read_file-to-fail","Can a corrupted or partially downloaded shapefile cause ",[19,2489,2490],{},"read_file()"," to fail?",[15,2493,2494],{},"Yes. Missing sidecar files, zero-byte files, partial downloads, and interrupted exports are all common causes of shapefile read failures.",[2496,2497,2498],"style",{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sbsja, html code.shiki .sbsja{--shiki-light:#9C3EDA;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sQRbd, html code.shiki .sQRbd{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#DBEDFF}html pre.shiki code .sjYin, html code.shiki .sjYin{--shiki-light:#90A4AE;--shiki-light-font-weight:inherit;--shiki-default:#22863A;--shiki-default-font-weight:bold;--shiki-dark:#85E89D;--shiki-dark-font-weight:bold}html pre.shiki code .stzsN, html code.shiki .stzsN{--shiki-light:#91B859;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .sZMiF, html code.shiki .sZMiF{--shiki-light:#E2931D;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":159,"searchDepth":183,"depth":183,"links":2500},[2501,2502,2503,2516,2524,2525,2531,2532],{"id":12,"depth":183,"text":13},{"id":86,"depth":183,"text":87},{"id":134,"depth":183,"text":135,"children":2504},[2505,2507,2508,2509,2510,2511,2512,2513,2514,2515],{"id":139,"depth":190,"text":2506},"1. Confirm you are opening the .shp file",{"id":284,"depth":190,"text":285},{"id":537,"depth":190,"text":538},{"id":728,"depth":190,"text":729},{"id":807,"depth":190,"text":808},{"id":1033,"depth":190,"text":1034},{"id":1051,"depth":190,"text":1052},{"id":1209,"depth":190,"text":1210},{"id":1253,"depth":190,"text":1254},{"id":1402,"depth":190,"text":1403},{"id":1532,"depth":183,"text":1533,"children":2517},[2518,2520,2521,2522,2523],{"id":1536,"depth":190,"text":2519},"Example 1: Basic geopandas.read_file() with an absolute path",{"id":1632,"depth":190,"text":1633},{"id":1826,"depth":190,"text":1827},{"id":1913,"depth":190,"text":1914},{"id":2114,"depth":190,"text":2115},{"id":2268,"depth":183,"text":2269},{"id":2340,"depth":183,"text":2341,"children":2526},[2527,2528,2529,2530],{"id":2344,"depth":190,"text":2345},{"id":2351,"depth":190,"text":2352},{"id":2361,"depth":190,"text":2362},{"id":2368,"depth":190,"text":2369},{"id":2392,"depth":183,"text":2393},{"id":2427,"depth":183,"text":2428,"children":2533},[2534,2535,2537,2539,2540],{"id":2431,"depth":190,"text":2432},{"id":2441,"depth":190,"text":2536},"Can GeoPandas read a shapefile if the .shx or .dbf file is missing?",{"id":2460,"depth":190,"text":2538},"Should I use fiona or pyogrio to read shapefiles in GeoPandas?",{"id":2472,"depth":190,"text":2473},{"id":2486,"depth":190,"text":2541},"Can a corrupted or partially downloaded shapefile cause read_file() to fail?","Common causes and fixes for GeoPandas failing to read a shapefile, including missing files, paths, and encoding issues.","md",{},"\u002Ftroubleshooting\u002Fgeopandas-not-reading-shapefile",{"title":5,"description":2542},"troubleshooting\u002Fgeopandas-not-reading-shapefile","54MPtvskcn5tEK2kKVOQVm9y1gdalP1YnoSuZqP0jdY",[2550,4687],{"id":2551,"title":2418,"body":2552,"description":4681,"extension":2543,"meta":4682,"navigation":186,"path":4683,"seo":4684,"stem":4685,"__hash__":4686},"content\u002Ftroubleshooting\u002Ffix-crs-mismatch-geopandas.md",{"type":7,"value":2553,"toc":4644},[2554,2556,2559,2562,2576,2579,2602,2605,2636,2639,2641,2644,2666,2801,2803,2807,2810,2927,2930,2970,2985,2989,2992,3102,3105,3108,3180,3183,3187,3193,3199,3206,3319,3323,3329,3345,3348,3352,3357,3362,3444,3447,3451,3454,3456,3469,3471,3475,3738,3742,3745,4093,4097,4101,4104,4153,4156,4189,4193,4287,4290,4294,4368,4371,4373,4376,4388,4391,4394,4437,4440,4443,4470,4473,4477,4541,4543,4550,4552,4566,4569,4581,4583,4592,4606,4610,4618,4622,4631,4635,4641],[10,2555,13],{"id":12},[15,2557,2558],{},"A CRS mismatch happens when two GeoDataFrames use different coordinate reference systems, or when one layer has missing or incorrect CRS metadata. This is a common reason spatial operations fail in GeoPandas.",[15,2560,2561],{},"In real workflows, this usually appears when you:",[24,2563,2564,2567,2570,2573],{},[27,2565,2566],{},"run a spatial join between a shapefile and a GeoJSON",[27,2568,2569],{},"overlay layers from different sources",[27,2571,2572],{},"clip features with a boundary layer",[27,2574,2575],{},"plot two layers that should overlap but appear far apart",[15,2577,2578],{},"Typical signs of a CRS mismatch in GeoPandas include:",[24,2580,2581,2587,2596,2599],{},[27,2582,2583,2586],{},[19,2584,2585],{},"sjoin()"," returns zero matches even though features should intersect",[27,2588,2589,53,2592,2595],{},[19,2590,2591],{},"overlay()",[19,2593,2594],{},"clip()"," returns empty results",[27,2597,2598],{},"layers plot in different locations",[27,2600,2601],{},"GeoPandas shows warnings about different CRS values",[15,2603,2604],{},"Common causes are:",[24,2606,2607,2620,2623,2633],{},[27,2608,2609,2610,2613,2614,53,2617],{},"one layer is in ",[19,2611,2612],{},"EPSG:4326"," and the other is in a projected CRS such as ",[19,2615,2616],{},"EPSG:3857",[19,2618,2619],{},"EPSG:32633",[27,2621,2622],{},"one file has no CRS defined",[27,2624,2625,2628,2629,2632],{},[19,2626,2627],{},"set_crs()"," is used when ",[19,2630,2631],{},"to_crs()"," is actually needed",[27,2634,2635],{},"a source file contains wrong CRS metadata",[15,2637,2638],{},"If you need to fix CRS mismatch in GeoPandas, the solution is to first identify each layer’s CRS, then assign or transform CRS correctly before running spatial analysis.",[10,2640,87],{"id":86},[15,2642,2643],{},"To fix coordinate system mismatch in GeoPandas:",[92,2645,2646,2652,2657,2663],{},[27,2647,2648,2649],{},"Check both GeoDataFrames with ",[19,2650,2651],{},".crs",[27,2653,2654,2655],{},"If one layer has missing CRS metadata, assign the correct CRS with ",[19,2656,2627],{},[27,2658,2659,2660,2662],{},"If both layers have valid but different CRS values, convert one layer with ",[19,2661,2631],{}," to match the other",[27,2664,2665],{},"Verify the fix by plotting or rerunning the spatial operation",[154,2667,2669],{"className":156,"code":2668,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\npoints = gpd.read_file(\"data\u002Fpoints.geojson\")\npolygons = gpd.read_file(\"data\u002Fzones.shp\")\n\nprint(points.crs)\nprint(polygons.crs)\n\n# Example: reproject points to match polygons\npoints = points.to_crs(polygons.crs)\n",[19,2670,2671,2681,2685,2709,2733,2737,2752,2767,2771,2777],{"__ignoreMap":159},[163,2672,2673,2675,2677,2679],{"class":165,"line":166},[163,2674,170],{"class":169},[163,2676,174],{"class":173},[163,2678,177],{"class":169},[163,2680,180],{"class":173},[163,2682,2683],{"class":165,"line":183},[163,2684,187],{"emptyLinePlaceholder":186},[163,2686,2687,2690,2692,2694,2696,2698,2700,2702,2705,2707],{"class":165,"line":190},[163,2688,2689],{"class":173},"points ",[163,2691,197],{"class":196},[163,2693,200],{"class":173},[163,2695,112],{"class":203},[163,2697,207],{"class":206},[163,2699,210],{"class":203},[163,2701,218],{"class":217},[163,2703,2704],{"class":434},"data\u002Fpoints.geojson",[163,2706,218],{"class":217},[163,2708,252],{"class":203},[163,2710,2711,2714,2716,2718,2720,2722,2724,2726,2729,2731],{"class":165,"line":393},[163,2712,2713],{"class":173},"polygons ",[163,2715,197],{"class":196},[163,2717,200],{"class":173},[163,2719,112],{"class":203},[163,2721,207],{"class":206},[163,2723,210],{"class":203},[163,2725,218],{"class":217},[163,2727,2728],{"class":434},"data\u002Fzones.shp",[163,2730,218],{"class":217},[163,2732,252],{"class":203},[163,2734,2735],{"class":165,"line":416},[163,2736,187],{"emptyLinePlaceholder":186},[163,2738,2739,2741,2743,2746,2748,2750],{"class":165,"line":421},[163,2740,641],{"class":503},[163,2742,210],{"class":203},[163,2744,2745],{"class":206},"points",[163,2747,112],{"class":203},[163,2749,1349],{"class":1167},[163,2751,252],{"class":203},[163,2753,2754,2756,2758,2761,2763,2765],{"class":165,"line":460},[163,2755,641],{"class":503},[163,2757,210],{"class":203},[163,2759,2760],{"class":206},"polygons",[163,2762,112],{"class":203},[163,2764,1349],{"class":1167},[163,2766,252],{"class":203},[163,2768,2769],{"class":165,"line":478},[163,2770,187],{"emptyLinePlaceholder":186},[163,2772,2773],{"class":165,"line":500},[163,2774,2776],{"class":2775},"sutJx","# Example: reproject points to match polygons\n",[163,2778,2779,2781,2783,2786,2788,2791,2793,2795,2797,2799],{"class":165,"line":951},[163,2780,2689],{"class":173},[163,2782,197],{"class":196},[163,2784,2785],{"class":173}," points",[163,2787,112],{"class":203},[163,2789,2790],{"class":206},"to_crs",[163,2792,210],{"class":203},[163,2794,2760],{"class":206},[163,2796,112],{"class":203},[163,2798,1349],{"class":1167},[163,2800,252],{"class":203},[10,2802,135],{"id":134},[10,2804,2806],{"id":2805},"check-whether-your-geodataframes-use-different-crs","Check whether your GeoDataFrames use different CRS",[15,2808,2809],{},"Always inspect CRS before doing a spatial join, overlay, clip, or area calculation.",[154,2811,2813],{"className":156,"code":2812,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\npoints = gpd.read_file(\"data\u002Fcustomer_points.geojson\")\nzones = gpd.read_file(\"data\u002Fservice_zones.shp\")\n\nprint(\"Points CRS:\", points.crs)\nprint(\"Zones CRS:\", zones.crs)\n",[19,2814,2815,2825,2829,2852,2876,2880,2903],{"__ignoreMap":159},[163,2816,2817,2819,2821,2823],{"class":165,"line":166},[163,2818,170],{"class":169},[163,2820,174],{"class":173},[163,2822,177],{"class":169},[163,2824,180],{"class":173},[163,2826,2827],{"class":165,"line":183},[163,2828,187],{"emptyLinePlaceholder":186},[163,2830,2831,2833,2835,2837,2839,2841,2843,2845,2848,2850],{"class":165,"line":190},[163,2832,2689],{"class":173},[163,2834,197],{"class":196},[163,2836,200],{"class":173},[163,2838,112],{"class":203},[163,2840,207],{"class":206},[163,2842,210],{"class":203},[163,2844,218],{"class":217},[163,2846,2847],{"class":434},"data\u002Fcustomer_points.geojson",[163,2849,218],{"class":217},[163,2851,252],{"class":203},[163,2853,2854,2857,2859,2861,2863,2865,2867,2869,2872,2874],{"class":165,"line":393},[163,2855,2856],{"class":173},"zones ",[163,2858,197],{"class":196},[163,2860,200],{"class":173},[163,2862,112],{"class":203},[163,2864,207],{"class":206},[163,2866,210],{"class":203},[163,2868,218],{"class":217},[163,2870,2871],{"class":434},"data\u002Fservice_zones.shp",[163,2873,218],{"class":217},[163,2875,252],{"class":203},[163,2877,2878],{"class":165,"line":416},[163,2879,187],{"emptyLinePlaceholder":186},[163,2881,2882,2884,2886,2888,2891,2893,2895,2897,2899,2901],{"class":165,"line":421},[163,2883,641],{"class":503},[163,2885,210],{"class":203},[163,2887,218],{"class":217},[163,2889,2890],{"class":434},"Points CRS:",[163,2892,218],{"class":217},[163,2894,439],{"class":203},[163,2896,2785],{"class":206},[163,2898,112],{"class":203},[163,2900,1349],{"class":1167},[163,2902,252],{"class":203},[163,2904,2905,2907,2909,2911,2914,2916,2918,2921,2923,2925],{"class":165,"line":460},[163,2906,641],{"class":503},[163,2908,210],{"class":203},[163,2910,218],{"class":217},[163,2912,2913],{"class":434},"Zones CRS:",[163,2915,218],{"class":217},[163,2917,439],{"class":203},[163,2919,2920],{"class":206}," zones",[163,2922,112],{"class":203},[163,2924,1349],{"class":1167},[163,2926,252],{"class":203},[15,2928,2929],{},"Typical output might be:",[154,2931,2933],{"className":156,"code":2932,"language":158,"meta":159,"style":159},"Points CRS: EPSG:4326\nZones CRS: EPSG:3857\n",[19,2934,2935,2954],{"__ignoreMap":159},[163,2936,2937,2940,2943,2946,2949,2951],{"class":165,"line":166},[163,2938,2939],{"class":173},"Points ",[163,2941,2942],{"class":876},"CRS",[163,2944,2945],{"class":203},":",[163,2947,2948],{"class":876}," EPSG",[163,2950,2945],{"class":203},[163,2952,2953],{"class":1793},"4326\n",[163,2955,2956,2959,2961,2963,2965,2967],{"class":165,"line":183},[163,2957,2958],{"class":173},"Zones ",[163,2960,2942],{"class":876},[163,2962,2945],{"class":203},[163,2964,2948],{"class":876},[163,2966,2945],{"class":203},[163,2968,2969],{"class":1793},"3857\n",[15,2971,2972,2973,2976,2977,2979,2980,2982,2983,112],{},"If the CRS values differ, spatial operations may give wrong or empty results. If either layer shows ",[19,2974,2975],{},"None"," for ",[19,2978,2651],{},", do not use ",[19,2981,2631],{}," yet; assign the correct source CRS first with ",[19,2984,2627],{},[137,2986,2988],{"id":2987},"identify-signs-of-crs-mismatch","Identify signs of CRS mismatch",[15,2990,2991],{},"This simple plot often reveals the problem:",[154,2993,2995],{"className":156,"code":2994,"language":158,"meta":159,"style":159},"ax = zones.plot(facecolor=\"none\", edgecolor=\"black\", figsize=(8, 8))\npoints.plot(ax=ax, color=\"red\", markersize=10)\n",[19,2996,2997,3059],{"__ignoreMap":159},[163,2998,2999,3002,3004,3006,3008,3011,3013,3016,3018,3020,3023,3025,3027,3030,3032,3034,3037,3039,3041,3044,3046,3048,3051,3053,3056],{"class":165,"line":166},[163,3000,3001],{"class":173},"ax ",[163,3003,197],{"class":196},[163,3005,2920],{"class":173},[163,3007,112],{"class":203},[163,3009,3010],{"class":206},"plot",[163,3012,210],{"class":203},[163,3014,3015],{"class":1484},"facecolor",[163,3017,197],{"class":196},[163,3019,218],{"class":217},[163,3021,3022],{"class":434},"none",[163,3024,218],{"class":217},[163,3026,439],{"class":203},[163,3028,3029],{"class":1484}," edgecolor",[163,3031,197],{"class":196},[163,3033,218],{"class":217},[163,3035,3036],{"class":434},"black",[163,3038,218],{"class":217},[163,3040,439],{"class":203},[163,3042,3043],{"class":1484}," figsize",[163,3045,197],{"class":196},[163,3047,210],{"class":203},[163,3049,3050],{"class":1793},"8",[163,3052,439],{"class":203},[163,3054,3055],{"class":1793}," 8",[163,3057,3058],{"class":203},"))\n",[163,3060,3061,3063,3065,3067,3069,3072,3074,3076,3078,3081,3083,3085,3088,3090,3092,3095,3097,3100],{"class":165,"line":183},[163,3062,2745],{"class":173},[163,3064,112],{"class":203},[163,3066,3010],{"class":206},[163,3068,210],{"class":203},[163,3070,3071],{"class":1484},"ax",[163,3073,197],{"class":196},[163,3075,3071],{"class":206},[163,3077,439],{"class":203},[163,3079,3080],{"class":1484}," color",[163,3082,197],{"class":196},[163,3084,218],{"class":217},[163,3086,3087],{"class":434},"red",[163,3089,218],{"class":217},[163,3091,439],{"class":203},[163,3093,3094],{"class":1484}," markersize",[163,3096,197],{"class":196},[163,3098,3099],{"class":1793},"10",[163,3101,252],{"class":203},[15,3103,3104],{},"If the layers do not line up, you likely have a CRS problem. It can be a true CRS mismatch, missing CRS metadata, wrong CRS metadata, or simply different geographic extents.",[15,3106,3107],{},"You may also see problems like this:",[154,3109,3111],{"className":156,"code":3110,"language":158,"meta":159,"style":159},"joined = gpd.sjoin(points, zones, predicate=\"within\", how=\"left\")\nprint(joined.head())\n",[19,3112,3113,3165],{"__ignoreMap":159},[163,3114,3115,3118,3120,3122,3124,3127,3129,3131,3133,3135,3137,3140,3142,3144,3147,3149,3151,3154,3156,3158,3161,3163],{"class":165,"line":166},[163,3116,3117],{"class":173},"joined ",[163,3119,197],{"class":196},[163,3121,200],{"class":173},[163,3123,112],{"class":203},[163,3125,3126],{"class":206},"sjoin",[163,3128,210],{"class":203},[163,3130,2745],{"class":206},[163,3132,439],{"class":203},[163,3134,2920],{"class":206},[163,3136,439],{"class":203},[163,3138,3139],{"class":1484}," predicate",[163,3141,197],{"class":196},[163,3143,218],{"class":217},[163,3145,3146],{"class":434},"within",[163,3148,218],{"class":217},[163,3150,439],{"class":203},[163,3152,3153],{"class":1484}," how",[163,3155,197],{"class":196},[163,3157,218],{"class":217},[163,3159,3160],{"class":434},"left",[163,3162,218],{"class":217},[163,3164,252],{"class":203},[163,3166,3167,3169,3171,3174,3176,3178],{"class":165,"line":183},[163,3168,641],{"class":503},[163,3170,210],{"class":203},[163,3172,3173],{"class":206},"joined",[163,3175,112],{"class":203},[163,3177,716],{"class":206},[163,3179,531],{"class":203},[15,3181,3182],{},"If the result has no matches where you expect some, check CRS first.",[10,3184,3186],{"id":3185},"fix-missing-crs-metadata-correctly","Fix missing CRS metadata correctly",[137,3188,3190,3191],{"id":3189},"when-to-use-set_crs","When to use ",[19,3192,2627],{},[15,3194,3195,3196,3198],{},"Use ",[19,3197,2627],{}," only when the coordinates are already in a known CRS, but the metadata is missing.",[15,3200,3201,3202,3205],{},"This does ",[2278,3203,3204],{},"not"," change the geometry coordinates. It only labels them.",[154,3207,3209],{"className":156,"code":3208,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\nparcels = gpd.read_file(\"data\u002Fparcels_missing_crs.shp\")\nprint(parcels.crs)  # None\n\n# Suppose you confirmed the source data is actually in EPSG:32633\nparcels = parcels.set_crs(\"EPSG:32633\")\n\nprint(parcels.crs)\n",[19,3210,3211,3221,3225,3249,3268,3272,3277,3301,3305],{"__ignoreMap":159},[163,3212,3213,3215,3217,3219],{"class":165,"line":166},[163,3214,170],{"class":169},[163,3216,174],{"class":173},[163,3218,177],{"class":169},[163,3220,180],{"class":173},[163,3222,3223],{"class":165,"line":183},[163,3224,187],{"emptyLinePlaceholder":186},[163,3226,3227,3230,3232,3234,3236,3238,3240,3242,3245,3247],{"class":165,"line":190},[163,3228,3229],{"class":173},"parcels ",[163,3231,197],{"class":196},[163,3233,200],{"class":173},[163,3235,112],{"class":203},[163,3237,207],{"class":206},[163,3239,210],{"class":203},[163,3241,218],{"class":217},[163,3243,3244],{"class":434},"data\u002Fparcels_missing_crs.shp",[163,3246,218],{"class":217},[163,3248,252],{"class":203},[163,3250,3251,3253,3255,3258,3260,3262,3265],{"class":165,"line":393},[163,3252,641],{"class":503},[163,3254,210],{"class":203},[163,3256,3257],{"class":206},"parcels",[163,3259,112],{"class":203},[163,3261,1349],{"class":1167},[163,3263,3264],{"class":203},")",[163,3266,3267],{"class":2775},"  # None\n",[163,3269,3270],{"class":165,"line":416},[163,3271,187],{"emptyLinePlaceholder":186},[163,3273,3274],{"class":165,"line":421},[163,3275,3276],{"class":2775},"# Suppose you confirmed the source data is actually in EPSG:32633\n",[163,3278,3279,3281,3283,3286,3288,3291,3293,3295,3297,3299],{"class":165,"line":460},[163,3280,3229],{"class":173},[163,3282,197],{"class":196},[163,3284,3285],{"class":173}," parcels",[163,3287,112],{"class":203},[163,3289,3290],{"class":206},"set_crs",[163,3292,210],{"class":203},[163,3294,218],{"class":217},[163,3296,2619],{"class":434},[163,3298,218],{"class":217},[163,3300,252],{"class":203},[163,3302,3303],{"class":165,"line":478},[163,3304,187],{"emptyLinePlaceholder":186},[163,3306,3307,3309,3311,3313,3315,3317],{"class":165,"line":500},[163,3308,641],{"class":503},[163,3310,210],{"class":203},[163,3312,3257],{"class":206},[163,3314,112],{"class":203},[163,3316,1349],{"class":1167},[163,3318,252],{"class":203},[137,3320,3322],{"id":3321},"how-to-confirm-the-source-crs-before-assigning-it","How to confirm the source CRS before assigning it",[15,3324,3325,3326,3328],{},"Before using ",[19,3327,2627],{},", verify the real CRS from the source:",[24,3330,3331,3334,3337,3342],{},[27,3332,3333],{},"check the original dataset documentation",[27,3335,3336],{},"inspect layer properties in QGIS",[27,3338,3339,3340,143],{},"review the shapefile ",[19,3341,315],{},[27,3343,3344],{},"confirm with the data provider",[15,3346,3347],{},"Do not guess. If you assign the wrong CRS, every later reprojection and spatial result will be wrong.",[10,3349,3351],{"id":3350},"reproject-one-layer-to-match-the-other","Reproject one layer to match the other",[137,3353,3190,3355],{"id":3354},"when-to-use-to_crs",[19,3356,2631],{},[15,3358,3195,3359,3361],{},[19,3360,2631],{}," when both layers already have valid CRS values, but they are different. This transforms the coordinates into a new CRS.",[154,3363,3365],{"className":156,"code":3364,"language":158,"meta":159,"style":159},"points = gpd.read_file(\"data\u002Fcustomer_points.geojson\")   # EPSG:4326\nzones = gpd.read_file(\"data\u002Fservice_zones.shp\")          # EPSG:3857\n\npoints = points.to_crs(zones.crs)\n",[19,3366,3367,3392,3417,3421],{"__ignoreMap":159},[163,3368,3369,3371,3373,3375,3377,3379,3381,3383,3385,3387,3389],{"class":165,"line":166},[163,3370,2689],{"class":173},[163,3372,197],{"class":196},[163,3374,200],{"class":173},[163,3376,112],{"class":203},[163,3378,207],{"class":206},[163,3380,210],{"class":203},[163,3382,218],{"class":217},[163,3384,2847],{"class":434},[163,3386,218],{"class":217},[163,3388,3264],{"class":203},[163,3390,3391],{"class":2775},"   # EPSG:4326\n",[163,3393,3394,3396,3398,3400,3402,3404,3406,3408,3410,3412,3414],{"class":165,"line":183},[163,3395,2856],{"class":173},[163,3397,197],{"class":196},[163,3399,200],{"class":173},[163,3401,112],{"class":203},[163,3403,207],{"class":206},[163,3405,210],{"class":203},[163,3407,218],{"class":217},[163,3409,2871],{"class":434},[163,3411,218],{"class":217},[163,3413,3264],{"class":203},[163,3415,3416],{"class":2775},"          # EPSG:3857\n",[163,3418,3419],{"class":165,"line":190},[163,3420,187],{"emptyLinePlaceholder":186},[163,3422,3423,3425,3427,3429,3431,3433,3435,3438,3440,3442],{"class":165,"line":393},[163,3424,2689],{"class":173},[163,3426,197],{"class":196},[163,3428,2785],{"class":173},[163,3430,112],{"class":203},[163,3432,2790],{"class":206},[163,3434,210],{"class":203},[163,3436,3437],{"class":206},"zones",[163,3439,112],{"class":203},[163,3441,1349],{"class":1167},[163,3443,252],{"class":203},[15,3445,3446],{},"This is the standard approach for aligning two layers before analysis.",[137,3448,3450],{"id":3449},"choose-which-layer-crs-to-match","Choose which layer CRS to match",[15,3452,3453],{},"In most cases, convert the secondary layer to match the main analysis layer.",[15,3455,1260],{},[24,3457,3458,3461,3466],{},[27,3459,3460],{},"if you are clipping points to administrative polygons, convert the points to the polygon CRS",[27,3462,3463,3464],{},"if you are calculating area, distance, or buffers, prefer a projected CRS instead of ",[19,3465,2612],{},[27,3467,3468],{},"keep one common CRS across the workflow to avoid repeated conversions",[10,3470,1533],{"id":1532},[137,3472,3474],{"id":3473},"example-assign-a-missing-crs-then-reproject","Example: assign a missing CRS, then reproject",[154,3476,3478],{"className":156,"code":3477,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\npoints = gpd.read_file(\"data\u002Ffield_points.geojson\")\nboundary = gpd.read_file(\"data\u002Fproject_boundary.shp\")\n\nprint(\"Before\")\nprint(\"Points CRS:\", points.crs)\nprint(\"Boundary CRS:\", boundary.crs)\n\n# points.crs is None, but you confirmed the coordinates are in WGS84\npoints = points.set_crs(\"EPSG:4326\")\n\n# Reproject to match the boundary layer\npoints = points.to_crs(boundary.crs)\n\nprint(\"\\nAfter\")\nprint(\"Points CRS:\", points.crs)\nprint(\"Boundary CRS:\", boundary.crs)\n",[19,3479,3480,3490,3494,3517,3541,3545,3560,3582,3606,3610,3615,3637,3641,3646,3669,3673,3692,3715],{"__ignoreMap":159},[163,3481,3482,3484,3486,3488],{"class":165,"line":166},[163,3483,170],{"class":169},[163,3485,174],{"class":173},[163,3487,177],{"class":169},[163,3489,180],{"class":173},[163,3491,3492],{"class":165,"line":183},[163,3493,187],{"emptyLinePlaceholder":186},[163,3495,3496,3498,3500,3502,3504,3506,3508,3510,3513,3515],{"class":165,"line":190},[163,3497,2689],{"class":173},[163,3499,197],{"class":196},[163,3501,200],{"class":173},[163,3503,112],{"class":203},[163,3505,207],{"class":206},[163,3507,210],{"class":203},[163,3509,218],{"class":217},[163,3511,3512],{"class":434},"data\u002Ffield_points.geojson",[163,3514,218],{"class":217},[163,3516,252],{"class":203},[163,3518,3519,3522,3524,3526,3528,3530,3532,3534,3537,3539],{"class":165,"line":393},[163,3520,3521],{"class":173},"boundary ",[163,3523,197],{"class":196},[163,3525,200],{"class":173},[163,3527,112],{"class":203},[163,3529,207],{"class":206},[163,3531,210],{"class":203},[163,3533,218],{"class":217},[163,3535,3536],{"class":434},"data\u002Fproject_boundary.shp",[163,3538,218],{"class":217},[163,3540,252],{"class":203},[163,3542,3543],{"class":165,"line":416},[163,3544,187],{"emptyLinePlaceholder":186},[163,3546,3547,3549,3551,3553,3556,3558],{"class":165,"line":421},[163,3548,641],{"class":503},[163,3550,210],{"class":203},[163,3552,218],{"class":217},[163,3554,3555],{"class":434},"Before",[163,3557,218],{"class":217},[163,3559,252],{"class":203},[163,3561,3562,3564,3566,3568,3570,3572,3574,3576,3578,3580],{"class":165,"line":460},[163,3563,641],{"class":503},[163,3565,210],{"class":203},[163,3567,218],{"class":217},[163,3569,2890],{"class":434},[163,3571,218],{"class":217},[163,3573,439],{"class":203},[163,3575,2785],{"class":206},[163,3577,112],{"class":203},[163,3579,1349],{"class":1167},[163,3581,252],{"class":203},[163,3583,3584,3586,3588,3590,3593,3595,3597,3600,3602,3604],{"class":165,"line":478},[163,3585,641],{"class":503},[163,3587,210],{"class":203},[163,3589,218],{"class":217},[163,3591,3592],{"class":434},"Boundary CRS:",[163,3594,218],{"class":217},[163,3596,439],{"class":203},[163,3598,3599],{"class":206}," boundary",[163,3601,112],{"class":203},[163,3603,1349],{"class":1167},[163,3605,252],{"class":203},[163,3607,3608],{"class":165,"line":500},[163,3609,187],{"emptyLinePlaceholder":186},[163,3611,3612],{"class":165,"line":951},[163,3613,3614],{"class":2775},"# points.crs is None, but you confirmed the coordinates are in WGS84\n",[163,3616,3617,3619,3621,3623,3625,3627,3629,3631,3633,3635],{"class":165,"line":956},[163,3618,2689],{"class":173},[163,3620,197],{"class":196},[163,3622,2785],{"class":173},[163,3624,112],{"class":203},[163,3626,3290],{"class":206},[163,3628,210],{"class":203},[163,3630,218],{"class":217},[163,3632,2612],{"class":434},[163,3634,218],{"class":217},[163,3636,252],{"class":203},[163,3638,3639],{"class":165,"line":963},[163,3640,187],{"emptyLinePlaceholder":186},[163,3642,3643],{"class":165,"line":971},[163,3644,3645],{"class":2775},"# Reproject to match the boundary layer\n",[163,3647,3648,3650,3652,3654,3656,3658,3660,3663,3665,3667],{"class":165,"line":996},[163,3649,2689],{"class":173},[163,3651,197],{"class":196},[163,3653,2785],{"class":173},[163,3655,112],{"class":203},[163,3657,2790],{"class":206},[163,3659,210],{"class":203},[163,3661,3662],{"class":206},"boundary",[163,3664,112],{"class":203},[163,3666,1349],{"class":1167},[163,3668,252],{"class":203},[163,3670,3671],{"class":165,"line":1005},[163,3672,187],{"emptyLinePlaceholder":186},[163,3674,3676,3678,3680,3682,3685,3688,3690],{"class":165,"line":3675},16,[163,3677,641],{"class":503},[163,3679,210],{"class":203},[163,3681,218],{"class":217},[163,3683,3684],{"class":876},"\\n",[163,3686,3687],{"class":434},"After",[163,3689,218],{"class":217},[163,3691,252],{"class":203},[163,3693,3695,3697,3699,3701,3703,3705,3707,3709,3711,3713],{"class":165,"line":3694},17,[163,3696,641],{"class":503},[163,3698,210],{"class":203},[163,3700,218],{"class":217},[163,3702,2890],{"class":434},[163,3704,218],{"class":217},[163,3706,439],{"class":203},[163,3708,2785],{"class":206},[163,3710,112],{"class":203},[163,3712,1349],{"class":1167},[163,3714,252],{"class":203},[163,3716,3718,3720,3722,3724,3726,3728,3730,3732,3734,3736],{"class":165,"line":3717},18,[163,3719,641],{"class":503},[163,3721,210],{"class":203},[163,3723,218],{"class":217},[163,3725,3592],{"class":434},[163,3727,218],{"class":217},[163,3729,439],{"class":203},[163,3731,3599],{"class":206},[163,3733,112],{"class":203},[163,3735,1349],{"class":1167},[163,3737,252],{"class":203},[137,3739,3741],{"id":3740},"example-fix-crs-mismatch-before-a-spatial-join","Example: fix CRS mismatch before a spatial join",[15,3743,3744],{},"This example shows a typical case with GeoJSON points and shapefile polygons.",[154,3746,3748],{"className":156,"code":3747,"language":158,"meta":159,"style":159},"import geopandas as gpd\n\n# Load layers from different sources\npoints = gpd.read_file(\"data\u002Fstores.geojson\")\ndistricts = gpd.read_file(\"data\u002Fdistricts.shp\")\n\nprint(\"Before fix\")\nprint(\"Points CRS:\", points.crs)\nprint(\"Districts CRS:\", districts.crs)\n\n# If points had no CRS but you confirmed they were in EPSG:4326:\n# points = points.set_crs(\"EPSG:4326\")\n\n# Reproject points to match polygon CRS\npoints = points.to_crs(districts.crs)\n\nprint(\"\\nAfter fix\")\nprint(\"Points CRS:\", points.crs)\nprint(\"Districts CRS:\", districts.crs)\n\n# Run spatial join\nstores_with_districts = gpd.sjoin(points, districts, predicate=\"within\", how=\"left\")\n\nprint(stores_with_districts[[\"store_name\", \"district_name\"]].head())\n",[19,3749,3750,3760,3764,3769,3792,3816,3820,3835,3857,3881,3885,3890,3895,3899,3904,3927,3931,3948,3970,3993,3998,4004,4052,4057],{"__ignoreMap":159},[163,3751,3752,3754,3756,3758],{"class":165,"line":166},[163,3753,170],{"class":169},[163,3755,174],{"class":173},[163,3757,177],{"class":169},[163,3759,180],{"class":173},[163,3761,3762],{"class":165,"line":183},[163,3763,187],{"emptyLinePlaceholder":186},[163,3765,3766],{"class":165,"line":190},[163,3767,3768],{"class":2775},"# Load layers from different sources\n",[163,3770,3771,3773,3775,3777,3779,3781,3783,3785,3788,3790],{"class":165,"line":393},[163,3772,2689],{"class":173},[163,3774,197],{"class":196},[163,3776,200],{"class":173},[163,3778,112],{"class":203},[163,3780,207],{"class":206},[163,3782,210],{"class":203},[163,3784,218],{"class":217},[163,3786,3787],{"class":434},"data\u002Fstores.geojson",[163,3789,218],{"class":217},[163,3791,252],{"class":203},[163,3793,3794,3797,3799,3801,3803,3805,3807,3809,3812,3814],{"class":165,"line":416},[163,3795,3796],{"class":173},"districts ",[163,3798,197],{"class":196},[163,3800,200],{"class":173},[163,3802,112],{"class":203},[163,3804,207],{"class":206},[163,3806,210],{"class":203},[163,3808,218],{"class":217},[163,3810,3811],{"class":434},"data\u002Fdistricts.shp",[163,3813,218],{"class":217},[163,3815,252],{"class":203},[163,3817,3818],{"class":165,"line":421},[163,3819,187],{"emptyLinePlaceholder":186},[163,3821,3822,3824,3826,3828,3831,3833],{"class":165,"line":460},[163,3823,641],{"class":503},[163,3825,210],{"class":203},[163,3827,218],{"class":217},[163,3829,3830],{"class":434},"Before fix",[163,3832,218],{"class":217},[163,3834,252],{"class":203},[163,3836,3837,3839,3841,3843,3845,3847,3849,3851,3853,3855],{"class":165,"line":478},[163,3838,641],{"class":503},[163,3840,210],{"class":203},[163,3842,218],{"class":217},[163,3844,2890],{"class":434},[163,3846,218],{"class":217},[163,3848,439],{"class":203},[163,3850,2785],{"class":206},[163,3852,112],{"class":203},[163,3854,1349],{"class":1167},[163,3856,252],{"class":203},[163,3858,3859,3861,3863,3865,3868,3870,3872,3875,3877,3879],{"class":165,"line":500},[163,3860,641],{"class":503},[163,3862,210],{"class":203},[163,3864,218],{"class":217},[163,3866,3867],{"class":434},"Districts CRS:",[163,3869,218],{"class":217},[163,3871,439],{"class":203},[163,3873,3874],{"class":206}," districts",[163,3876,112],{"class":203},[163,3878,1349],{"class":1167},[163,3880,252],{"class":203},[163,3882,3883],{"class":165,"line":951},[163,3884,187],{"emptyLinePlaceholder":186},[163,3886,3887],{"class":165,"line":956},[163,3888,3889],{"class":2775},"# If points had no CRS but you confirmed they were in EPSG:4326:\n",[163,3891,3892],{"class":165,"line":963},[163,3893,3894],{"class":2775},"# points = points.set_crs(\"EPSG:4326\")\n",[163,3896,3897],{"class":165,"line":971},[163,3898,187],{"emptyLinePlaceholder":186},[163,3900,3901],{"class":165,"line":996},[163,3902,3903],{"class":2775},"# Reproject points to match polygon CRS\n",[163,3905,3906,3908,3910,3912,3914,3916,3918,3921,3923,3925],{"class":165,"line":1005},[163,3907,2689],{"class":173},[163,3909,197],{"class":196},[163,3911,2785],{"class":173},[163,3913,112],{"class":203},[163,3915,2790],{"class":206},[163,3917,210],{"class":203},[163,3919,3920],{"class":206},"districts",[163,3922,112],{"class":203},[163,3924,1349],{"class":1167},[163,3926,252],{"class":203},[163,3928,3929],{"class":165,"line":3675},[163,3930,187],{"emptyLinePlaceholder":186},[163,3932,3933,3935,3937,3939,3941,3944,3946],{"class":165,"line":3694},[163,3934,641],{"class":503},[163,3936,210],{"class":203},[163,3938,218],{"class":217},[163,3940,3684],{"class":876},[163,3942,3943],{"class":434},"After fix",[163,3945,218],{"class":217},[163,3947,252],{"class":203},[163,3949,3950,3952,3954,3956,3958,3960,3962,3964,3966,3968],{"class":165,"line":3717},[163,3951,641],{"class":503},[163,3953,210],{"class":203},[163,3955,218],{"class":217},[163,3957,2890],{"class":434},[163,3959,218],{"class":217},[163,3961,439],{"class":203},[163,3963,2785],{"class":206},[163,3965,112],{"class":203},[163,3967,1349],{"class":1167},[163,3969,252],{"class":203},[163,3971,3973,3975,3977,3979,3981,3983,3985,3987,3989,3991],{"class":165,"line":3972},19,[163,3974,641],{"class":503},[163,3976,210],{"class":203},[163,3978,218],{"class":217},[163,3980,3867],{"class":434},[163,3982,218],{"class":217},[163,3984,439],{"class":203},[163,3986,3874],{"class":206},[163,3988,112],{"class":203},[163,3990,1349],{"class":1167},[163,3992,252],{"class":203},[163,3994,3996],{"class":165,"line":3995},20,[163,3997,187],{"emptyLinePlaceholder":186},[163,3999,4001],{"class":165,"line":4000},21,[163,4002,4003],{"class":2775},"# Run spatial join\n",[163,4005,4007,4010,4012,4014,4016,4018,4020,4022,4024,4026,4028,4030,4032,4034,4036,4038,4040,4042,4044,4046,4048,4050],{"class":165,"line":4006},22,[163,4008,4009],{"class":173},"stores_with_districts ",[163,4011,197],{"class":196},[163,4013,200],{"class":173},[163,4015,112],{"class":203},[163,4017,3126],{"class":206},[163,4019,210],{"class":203},[163,4021,2745],{"class":206},[163,4023,439],{"class":203},[163,4025,3874],{"class":206},[163,4027,439],{"class":203},[163,4029,3139],{"class":1484},[163,4031,197],{"class":196},[163,4033,218],{"class":217},[163,4035,3146],{"class":434},[163,4037,218],{"class":217},[163,4039,439],{"class":203},[163,4041,3153],{"class":1484},[163,4043,197],{"class":196},[163,4045,218],{"class":217},[163,4047,3160],{"class":434},[163,4049,218],{"class":217},[163,4051,252],{"class":203},[163,4053,4055],{"class":165,"line":4054},23,[163,4056,187],{"emptyLinePlaceholder":186},[163,4058,4060,4062,4064,4067,4070,4072,4075,4077,4079,4081,4084,4086,4089,4091],{"class":165,"line":4059},24,[163,4061,641],{"class":503},[163,4063,210],{"class":203},[163,4065,4066],{"class":206},"stores_with_districts",[163,4068,4069],{"class":203},"[[",[163,4071,218],{"class":217},[163,4073,4074],{"class":434},"store_name",[163,4076,218],{"class":217},[163,4078,439],{"class":203},[163,4080,442],{"class":217},[163,4082,4083],{"class":434},"district_name",[163,4085,218],{"class":217},[163,4087,4088],{"class":203},"]].",[163,4090,716],{"class":206},[163,4092,531],{"class":203},[10,4094,4096],{"id":4095},"verify-that-the-crs-fix-worked","Verify that the CRS fix worked",[137,4098,4100],{"id":4099},"compare-crs-after-conversion","Compare CRS after conversion",[15,4102,4103],{},"After reprojection, both layers should report the same CRS:",[154,4105,4107],{"className":156,"code":4106,"language":158,"meta":159,"style":159},"print(\"Points CRS:\", points.crs)\nprint(\"Zones CRS:\", zones.crs)\n",[19,4108,4109,4131],{"__ignoreMap":159},[163,4110,4111,4113,4115,4117,4119,4121,4123,4125,4127,4129],{"class":165,"line":166},[163,4112,641],{"class":503},[163,4114,210],{"class":203},[163,4116,218],{"class":217},[163,4118,2890],{"class":434},[163,4120,218],{"class":217},[163,4122,439],{"class":203},[163,4124,2785],{"class":206},[163,4126,112],{"class":203},[163,4128,1349],{"class":1167},[163,4130,252],{"class":203},[163,4132,4133,4135,4137,4139,4141,4143,4145,4147,4149,4151],{"class":165,"line":183},[163,4134,641],{"class":503},[163,4136,210],{"class":203},[163,4138,218],{"class":217},[163,4140,2913],{"class":434},[163,4142,218],{"class":217},[163,4144,439],{"class":203},[163,4146,2920],{"class":206},[163,4148,112],{"class":203},[163,4150,1349],{"class":1167},[163,4152,252],{"class":203},[15,4154,4155],{},"Expected output:",[154,4157,4159],{"className":156,"code":4158,"language":158,"meta":159,"style":159},"Points CRS: EPSG:3857\nZones CRS: EPSG:3857\n",[19,4160,4161,4175],{"__ignoreMap":159},[163,4162,4163,4165,4167,4169,4171,4173],{"class":165,"line":166},[163,4164,2939],{"class":173},[163,4166,2942],{"class":876},[163,4168,2945],{"class":203},[163,4170,2948],{"class":876},[163,4172,2945],{"class":203},[163,4174,2969],{"class":1793},[163,4176,4177,4179,4181,4183,4185,4187],{"class":165,"line":183},[163,4178,2958],{"class":173},[163,4180,2942],{"class":876},[163,4182,2945],{"class":203},[163,4184,2948],{"class":876},[163,4186,2945],{"class":203},[163,4188,2969],{"class":1793},[137,4190,4192],{"id":4191},"plot-both-layers-to-check-alignment","Plot both layers to check alignment",[154,4194,4195],{"className":156,"code":2994,"language":158,"meta":159,"style":159},[19,4196,4197,4249],{"__ignoreMap":159},[163,4198,4199,4201,4203,4205,4207,4209,4211,4213,4215,4217,4219,4221,4223,4225,4227,4229,4231,4233,4235,4237,4239,4241,4243,4245,4247],{"class":165,"line":166},[163,4200,3001],{"class":173},[163,4202,197],{"class":196},[163,4204,2920],{"class":173},[163,4206,112],{"class":203},[163,4208,3010],{"class":206},[163,4210,210],{"class":203},[163,4212,3015],{"class":1484},[163,4214,197],{"class":196},[163,4216,218],{"class":217},[163,4218,3022],{"class":434},[163,4220,218],{"class":217},[163,4222,439],{"class":203},[163,4224,3029],{"class":1484},[163,4226,197],{"class":196},[163,4228,218],{"class":217},[163,4230,3036],{"class":434},[163,4232,218],{"class":217},[163,4234,439],{"class":203},[163,4236,3043],{"class":1484},[163,4238,197],{"class":196},[163,4240,210],{"class":203},[163,4242,3050],{"class":1793},[163,4244,439],{"class":203},[163,4246,3055],{"class":1793},[163,4248,3058],{"class":203},[163,4250,4251,4253,4255,4257,4259,4261,4263,4265,4267,4269,4271,4273,4275,4277,4279,4281,4283,4285],{"class":165,"line":183},[163,4252,2745],{"class":173},[163,4254,112],{"class":203},[163,4256,3010],{"class":206},[163,4258,210],{"class":203},[163,4260,3071],{"class":1484},[163,4262,197],{"class":196},[163,4264,3071],{"class":206},[163,4266,439],{"class":203},[163,4268,3080],{"class":1484},[163,4270,197],{"class":196},[163,4272,218],{"class":217},[163,4274,3087],{"class":434},[163,4276,218],{"class":217},[163,4278,439],{"class":203},[163,4280,3094],{"class":1484},[163,4282,197],{"class":196},[163,4284,3099],{"class":1793},[163,4286,252],{"class":203},[15,4288,4289],{},"If the CRS fix worked, the layers should now align.",[137,4291,4293],{"id":4292},"re-run-the-failed-spatial-operation","Re-run the failed spatial operation",[154,4295,4297],{"className":156,"code":4296,"language":158,"meta":159,"style":159},"joined = gpd.sjoin(points, zones, predicate=\"within\", how=\"left\")\nprint(joined[[\"zone_id\"]].head())\n",[19,4298,4299,4345],{"__ignoreMap":159},[163,4300,4301,4303,4305,4307,4309,4311,4313,4315,4317,4319,4321,4323,4325,4327,4329,4331,4333,4335,4337,4339,4341,4343],{"class":165,"line":166},[163,4302,3117],{"class":173},[163,4304,197],{"class":196},[163,4306,200],{"class":173},[163,4308,112],{"class":203},[163,4310,3126],{"class":206},[163,4312,210],{"class":203},[163,4314,2745],{"class":206},[163,4316,439],{"class":203},[163,4318,2920],{"class":206},[163,4320,439],{"class":203},[163,4322,3139],{"class":1484},[163,4324,197],{"class":196},[163,4326,218],{"class":217},[163,4328,3146],{"class":434},[163,4330,218],{"class":217},[163,4332,439],{"class":203},[163,4334,3153],{"class":1484},[163,4336,197],{"class":196},[163,4338,218],{"class":217},[163,4340,3160],{"class":434},[163,4342,218],{"class":217},[163,4344,252],{"class":203},[163,4346,4347,4349,4351,4353,4355,4357,4360,4362,4364,4366],{"class":165,"line":183},[163,4348,641],{"class":503},[163,4350,210],{"class":203},[163,4352,3173],{"class":206},[163,4354,4069],{"class":203},[163,4356,218],{"class":217},[163,4358,4359],{"class":434},"zone_id",[163,4361,218],{"class":217},[163,4363,4088],{"class":203},[163,4365,716],{"class":206},[163,4367,531],{"class":203},[15,4369,4370],{},"This is often enough to resolve a CRS mismatch before a spatial join.",[10,4372,2269],{"id":2268},[15,4374,4375],{},"GeoPandas stores geometry coordinates and CRS metadata together, but they are not the same thing.",[24,4377,4378,4383],{},[27,4379,4380,4382],{},[19,4381,2627],{}," assigns metadata only",[27,4384,4385,4387],{},[19,4386,2631],{}," transforms coordinates into a different coordinate system",[15,4389,4390],{},"That distinction is the most important part of fixing CRS problems.",[15,4392,4393],{},"A common mistake looks like this:",[154,4395,4397],{"className":156,"code":4396,"language":158,"meta":159,"style":159},"# Wrong if the data is already in EPSG:4326 and you want EPSG:3857\npoints = points.set_crs(\"EPSG:3857\", allow_override=True)\n",[19,4398,4399,4404],{"__ignoreMap":159},[163,4400,4401],{"class":165,"line":166},[163,4402,4403],{"class":2775},"# Wrong if the data is already in EPSG:4326 and you want EPSG:3857\n",[163,4405,4406,4408,4410,4412,4414,4416,4418,4420,4422,4424,4426,4429,4431,4435],{"class":165,"line":183},[163,4407,2689],{"class":173},[163,4409,197],{"class":196},[163,4411,2785],{"class":173},[163,4413,112],{"class":203},[163,4415,3290],{"class":206},[163,4417,210],{"class":203},[163,4419,218],{"class":217},[163,4421,2616],{"class":434},[163,4423,218],{"class":217},[163,4425,439],{"class":203},[163,4427,4428],{"class":1484}," allow_override",[163,4430,197],{"class":196},[163,4432,4434],{"class":4433},"s39Yj","True",[163,4436,252],{"class":203},[15,4438,4439],{},"This tells GeoPandas to treat existing longitude\u002Flatitude coordinates as Web Mercator coordinates. The geometry does not move correctly. It becomes mislabeled data.",[15,4441,4442],{},"The correct approach is:",[154,4444,4446],{"className":156,"code":4445,"language":158,"meta":159,"style":159},"points = points.to_crs(\"EPSG:3857\")\n",[19,4447,4448],{"__ignoreMap":159},[163,4449,4450,4452,4454,4456,4458,4460,4462,4464,4466,4468],{"class":165,"line":166},[163,4451,2689],{"class":173},[163,4453,197],{"class":196},[163,4455,2785],{"class":173},[163,4457,112],{"class":203},[163,4459,2790],{"class":206},[163,4461,210],{"class":203},[163,4463,218],{"class":217},[163,4465,2616],{"class":434},[163,4467,218],{"class":217},[163,4469,252],{"class":203},[15,4471,4472],{},"But this only works if the current CRS is already correct. Reprojection depends on having a valid starting CRS.",[10,4474,4476],{"id":4475},"edge-cases-notes","Edge cases \u002F notes",[24,4478,4479,4489,4498,4512,4526,4535],{},[27,4480,4481,4484,4485,4488],{},[2278,4482,4483],{},"Files with wrong embedded CRS:"," Sometimes a shapefile or other source has CRS metadata, but it is wrong. In that case, first correct the metadata with ",[19,4486,4487],{},"set_crs(..., allow_override=True)"," only if you are certain of the real source CRS, then reproject if needed.",[27,4490,4491,4494,4495,4497],{},[2278,4492,4493],{},"GeoJSON often uses longitude\u002Flatitude coordinates in WGS84:"," This is common, but still verify with ",[19,4496,2651],{}," after loading.",[27,4499,4500,4506,4507,4509,4510,112],{},[2278,4501,4502,4503,4505],{},"Shapefile CRS depends on the ",[19,4504,315],{}," file:"," If the ",[19,4508,315],{}," file is missing or broken, CRS may load as ",[19,4511,2975],{},[27,4513,4514,4519,4520,4522,4523,4525],{},[2278,4515,4516,4518],{},[19,4517,2631],{}," requires a known source CRS:"," If ",[19,4521,2651],{}," is ",[19,4524,2975],{},", GeoPandas cannot reproject the layer until you assign the correct original CRS.",[27,4527,4528,4531,4532,4534],{},[2278,4529,4530],{},"Mixing geographic and projected CRS:"," ",[19,4533,2612],{}," is fine for storage and display, but not ideal for distance, area, or buffer analysis.",[27,4536,4537,4540],{},[2278,4538,4539],{},"Invalid geometries are separate problems:"," CRS alignment will not fix self-intersections or broken polygons. If overlay or join still fails, check geometry validity too.",[10,4542,2393],{"id":2392},[15,4544,4545,4546,112],{},"For a broader explanation, see ",[2398,4547,4549],{"href":4548},"\u002Ffoundation\u002Fcrs-coordinate-systems-explained\u002F","Coordinate Reference Systems (CRS) in GeoPandas",[15,4551,2404],{},[24,4553,4554,4560],{},[27,4555,4556],{},[2398,4557,4559],{"href":4558},"\u002Ftasks\u002Freproject-geodataframe-python\u002F","How to Reproject a GeoDataFrame in GeoPandas",[27,4561,4562],{},[2398,4563,4565],{"href":4564},"\u002Ftasks\u002Fspatial-join-python-geopandas\u002F","How to Do a Spatial Join in GeoPandas",[15,4567,4568],{},"If your layers still fail after CRS correction, check:",[24,4570,4571,4577],{},[27,4572,4573],{},[2398,4574,4576],{"href":4575},"\u002Ftasks\u002Ffix-invalid-geometries-python\u002F","How to Fix Invalid Geometry in GeoPandas",[27,4578,4579],{},[2398,4580,5],{"href":2400},[10,4582,2428],{"id":2427},[137,4584,4586,4587,2480,4589,4591],{"id":4585},"what-is-the-difference-between-set_crs-and-to_crs-in-geopandas","What is the difference between ",[19,4588,2627],{},[19,4590,2631],{}," in GeoPandas?",[15,4593,4594,4596,4597,4599,4600,4602,4603,4605],{},[19,4595,2627],{}," assigns CRS metadata without changing coordinates. ",[19,4598,2631],{}," transforms coordinates into a new CRS. Use ",[19,4601,2627],{}," for missing metadata, and ",[19,4604,2631],{}," for actual reprojection.",[137,4607,4609],{"id":4608},"why-does-my-spatial-join-return-no-matches-even-though-the-layers-overlap","Why does my spatial join return no matches even though the layers overlap?",[15,4611,4612,4613,4615,4616,112],{},"The most common reason is that the two layers use different CRS values. Check ",[19,4614,2651],{}," on both GeoDataFrames and reproject one to match the other before running ",[19,4617,2585],{},[137,4619,4621],{"id":4620},"can-i-fix-crs-mismatch-if-one-file-has-no-crs-defined","Can I fix CRS mismatch if one file has no CRS defined?",[15,4623,4624,4625,4627,4628,4630],{},"Yes, but only if you know the correct source CRS. Assign it with ",[19,4626,2627],{},", then use ",[19,4629,2631],{}," if you need to match another layer.",[137,4632,4634],{"id":4633},"should-i-use-epsg4326-or-a-projected-crs-for-analysis","Should I use EPSG:4326 or a projected CRS for analysis?",[15,4636,4637,4638,4640],{},"Use a projected CRS for area, distance, and buffering. ",[19,4639,2612],{}," is common for storage, exchange formats like GeoJSON, and web mapping workflows, but not ideal for metric analysis.",[2496,4642,4643],{},"html pre.shiki code .sVHd0, html code.shiki .sVHd0{--shiki-light:#39ADB5;--shiki-light-font-style:italic;--shiki-default:#D73A49;--shiki-default-font-style:inherit;--shiki-dark:#F97583;--shiki-dark-font-style:inherit}html pre.shiki code .su5hD, html code.shiki .su5hD{--shiki-light:#90A4AE;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .smGrS, html code.shiki .smGrS{--shiki-light:#39ADB5;--shiki-default:#D73A49;--shiki-dark:#F97583}html pre.shiki code .sP7_E, html code.shiki .sP7_E{--shiki-light:#39ADB5;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .slqww, html code.shiki .slqww{--shiki-light:#6182B8;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sjJ54, html code.shiki .sjJ54{--shiki-light:#39ADB5;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .s_sjI, html code.shiki .s_sjI{--shiki-light:#91B859;--shiki-default:#032F62;--shiki-dark:#9ECBFF}html pre.shiki code .sptTA, html code.shiki .sptTA{--shiki-light:#6182B8;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .skxfh, html code.shiki .skxfh{--shiki-light:#E53935;--shiki-default:#24292E;--shiki-dark:#E1E4E8}html pre.shiki code .sutJx, html code.shiki .sutJx{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#6A737D;--shiki-default-font-style:inherit;--shiki-dark:#6A737D;--shiki-dark-font-style:inherit}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .s_hVV, html code.shiki .s_hVV{--shiki-light:#90A4AE;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .srdBf, html code.shiki .srdBf{--shiki-light:#F76D47;--shiki-default:#005CC5;--shiki-dark:#79B8FF}html pre.shiki code .s99_P, html code.shiki .s99_P{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#E36209;--shiki-default-font-style:inherit;--shiki-dark:#FFAB70;--shiki-dark-font-style:inherit}html pre.shiki code .s39Yj, html code.shiki .s39Yj{--shiki-light:#39ADB5;--shiki-default:#005CC5;--shiki-dark:#79B8FF}",{"title":159,"searchDepth":183,"depth":183,"links":4645},[4646,4647,4648,4649,4652,4657,4662,4666,4671,4672,4673,4674],{"id":12,"depth":183,"text":13},{"id":86,"depth":183,"text":87},{"id":134,"depth":183,"text":135},{"id":2805,"depth":183,"text":2806,"children":4650},[4651],{"id":2987,"depth":190,"text":2988},{"id":3185,"depth":183,"text":3186,"children":4653},[4654,4656],{"id":3189,"depth":190,"text":4655},"When to use set_crs()",{"id":3321,"depth":190,"text":3322},{"id":3350,"depth":183,"text":3351,"children":4658},[4659,4661],{"id":3354,"depth":190,"text":4660},"When to use to_crs()",{"id":3449,"depth":190,"text":3450},{"id":1532,"depth":183,"text":1533,"children":4663},[4664,4665],{"id":3473,"depth":190,"text":3474},{"id":3740,"depth":190,"text":3741},{"id":4095,"depth":183,"text":4096,"children":4667},[4668,4669,4670],{"id":4099,"depth":190,"text":4100},{"id":4191,"depth":190,"text":4192},{"id":4292,"depth":190,"text":4293},{"id":2268,"depth":183,"text":2269},{"id":4475,"depth":183,"text":4476},{"id":2392,"depth":183,"text":2393},{"id":2427,"depth":183,"text":2428,"children":4675},[4676,4678,4679,4680],{"id":4585,"depth":190,"text":4677},"What is the difference between set_crs() and to_crs() in GeoPandas?",{"id":4608,"depth":190,"text":4609},{"id":4620,"depth":190,"text":4621},{"id":4633,"depth":190,"text":4634},"How to identify and fix CRS mismatch issues in GeoPandas using set_crs() and to_crs() before spatial operations.",{},"\u002Ftroubleshooting\u002Ffix-crs-mismatch-geopandas",{"title":2418,"description":4681},"troubleshooting\u002Ffix-crs-mismatch-geopandas","iwcyauuDO1nRXtodfqGRwdmOIIKefxmvQM0Wut2Ep7k",{"id":4,"title":5,"body":4688,"description":2542,"extension":2543,"meta":6790,"navigation":186,"path":2545,"seo":6791,"stem":2547,"__hash__":2548},{"type":7,"value":4689,"toc":6752},[4690,4692,4696,4706,4708,4734,4736,4738,4740,4768,4770,4774,4778,4780,4838,4840,4854,4858,4860,4862,4876,4878,4888,4894,5058,5060,5062,5064,5066,5078,5080,5224,5228,5230,5234,5236,5294,5296,5298,5306,5316,5318,5478,5486,5488,5490,5496,5498,5500,5502,5516,5518,5622,5630,5632,5634,5642,5646,5648,5658,5660,5662,5664,5666,5676,5678,5790,5792,5794,5796,5908,5910,5912,5916,6002,6004,6186,6188,6268,6270,6452,6454,6598,6600,6602,6634,6636,6638,6650,6652,6654,6656,6658,6662,6664,6666,6668,6670,6682,6684,6686,6690,6692,6702,6706,6708,6710,6714,6720,6728,6734,6736,6738,6744,6748,6750],[10,4691,13],{"id":12},[15,4693,17,4694,22],{},[19,4695,21],{},[24,4697,4698,4700,4702,4704],{},[27,4699,29],{},[27,4701,32],{},[27,4703,35],{},[27,4705,38],{},[15,4707,41],{},[24,4709,4710,4712,4718,4720,4722,4728,4730,4732],{},[27,4711,46],{},[27,4713,49,4714,53,4716],{},[19,4715,52],{},[19,4717,56],{},[27,4719,59],{},[27,4721,62],{},[27,4723,4724,53,4726,71],{},[19,4725,67],{},[19,4727,70],{},[27,4729,74],{},[27,4731,77],{},[27,4733,80],{},[15,4735,83],{},[10,4737,87],{"id":86},[15,4739,90],{},[92,4741,4742,4746,4754,4756,4758,4764,4766],{},[27,4743,96,4744,100],{},[19,4745,99],{},[27,4747,103,4748,106,4750,109,4752,112],{},[19,4749,99],{},[19,4751,52],{},[19,4753,56],{},[27,4755,115],{},[27,4757,118],{},[27,4759,121,4760,53,4762,112],{},[19,4761,67],{},[19,4763,70],{},[27,4765,128],{},[27,4767,131],{},[10,4769,135],{"id":134},[137,4771,140,4772,143],{"id":139},[19,4773,99],{},[15,4775,146,4776,149],{},[19,4777,99],{},[15,4779,152],{},[154,4781,4782],{"className":156,"code":157,"language":158,"meta":159,"style":159},[19,4783,4784,4794,4798],{"__ignoreMap":159},[163,4785,4786,4788,4790,4792],{"class":165,"line":166},[163,4787,170],{"class":169},[163,4789,174],{"class":173},[163,4791,177],{"class":169},[163,4793,180],{"class":173},[163,4795,4796],{"class":165,"line":183},[163,4797,187],{"emptyLinePlaceholder":186},[163,4799,4800,4802,4804,4806,4808,4810,4812,4814,4816,4818,4820,4822,4824,4826,4828,4830,4832,4834,4836],{"class":165,"line":190},[163,4801,193],{"class":173},[163,4803,197],{"class":196},[163,4805,200],{"class":173},[163,4807,112],{"class":203},[163,4809,207],{"class":206},[163,4811,210],{"class":203},[163,4813,214],{"class":213},[163,4815,218],{"class":217},[163,4817,222],{"class":221},[163,4819,226],{"class":225},[163,4821,229],{"class":221},[163,4823,233],{"class":232},[163,4825,236],{"class":221},[163,4827,239],{"class":225},[163,4829,242],{"class":221},[163,4831,112],{"class":232},[163,4833,247],{"class":221},[163,4835,218],{"class":217},[163,4837,252],{"class":203},[15,4839,255],{},[24,4841,4842,4844,4848,4852],{},[27,4843,260],{},[27,4845,263,4846],{},[19,4847,266],{},[27,4849,263,4850],{},[19,4851,271],{},[27,4853,274],{},[15,4855,277,4856,281],{},[19,4857,280],{},[137,4859,285],{"id":284},[15,4861,288],{},[24,4863,4864,4868,4872],{},[27,4865,4866,295],{},[19,4867,99],{},[27,4869,4870,300],{},[19,4871,52],{},[27,4873,4874,305],{},[19,4875,56],{},[15,4877,308],{},[24,4879,4880,4884],{},[27,4881,4882,316],{},[19,4883,315],{},[27,4885,4886,322],{},[19,4887,321],{},[15,4889,325,4890,53,4892,330],{},[19,4891,52],{},[19,4893,56],{},[154,4895,4896],{"className":156,"code":333,"language":158,"meta":159,"style":159},[19,4897,4898,4908,4912,4948,4966,4970,5002,5014,5032],{"__ignoreMap":159},[163,4899,4900,4902,4904,4906],{"class":165,"line":166},[163,4901,340],{"class":169},[163,4903,343],{"class":173},[163,4905,170],{"class":169},[163,4907,348],{"class":173},[163,4909,4910],{"class":165,"line":183},[163,4911,187],{"emptyLinePlaceholder":186},[163,4913,4914,4916,4918,4920,4922,4924,4926,4928,4930,4932,4934,4936,4938,4940,4942,4944,4946],{"class":165,"line":190},[163,4915,357],{"class":173},[163,4917,197],{"class":196},[163,4919,362],{"class":206},[163,4921,210],{"class":203},[163,4923,214],{"class":213},[163,4925,218],{"class":217},[163,4927,222],{"class":221},[163,4929,226],{"class":225},[163,4931,229],{"class":221},[163,4933,233],{"class":232},[163,4935,236],{"class":221},[163,4937,239],{"class":225},[163,4939,242],{"class":221},[163,4941,112],{"class":232},[163,4943,247],{"class":221},[163,4945,218],{"class":217},[163,4947,252],{"class":203},[163,4949,4950,4952,4954,4956,4958,4960,4962,4964],{"class":165,"line":393},[163,4951,396],{"class":173},[163,4953,197],{"class":196},[163,4955,401],{"class":173},[163,4957,112],{"class":203},[163,4959,406],{"class":206},[163,4961,210],{"class":203},[163,4963,411],{"class":217},[163,4965,252],{"class":203},[163,4967,4968],{"class":165,"line":416},[163,4969,187],{"emptyLinePlaceholder":186},[163,4971,4972,4974,4976,4978,4980,4982,4984,4986,4988,4990,4992,4994,4996,4998,5000],{"class":165,"line":421},[163,4973,424],{"class":173},[163,4975,197],{"class":196},[163,4977,429],{"class":203},[163,4979,218],{"class":217},[163,4981,99],{"class":434},[163,4983,218],{"class":217},[163,4985,439],{"class":203},[163,4987,442],{"class":217},[163,4989,52],{"class":434},[163,4991,218],{"class":217},[163,4993,439],{"class":203},[163,4995,442],{"class":217},[163,4997,56],{"class":434},[163,4999,218],{"class":217},[163,5001,457],{"class":203},[163,5003,5004,5006,5008,5010,5012],{"class":165,"line":460},[163,5005,463],{"class":169},[163,5007,466],{"class":173},[163,5009,469],{"class":169},[163,5011,472],{"class":173},[163,5013,475],{"class":203},[163,5015,5016,5018,5020,5022,5024,5026,5028,5030],{"class":165,"line":478},[163,5017,481],{"class":173},[163,5019,197],{"class":196},[163,5021,486],{"class":173},[163,5023,112],{"class":203},[163,5025,406],{"class":206},[163,5027,210],{"class":203},[163,5029,495],{"class":206},[163,5031,252],{"class":203},[163,5033,5034,5036,5038,5040,5042,5044,5046,5048,5050,5052,5054,5056],{"class":165,"line":500},[163,5035,504],{"class":503},[163,5037,210],{"class":203},[163,5039,509],{"class":206},[163,5041,439],{"class":203},[163,5043,442],{"class":217},[163,5045,516],{"class":434},[163,5047,218],{"class":217},[163,5049,439],{"class":203},[163,5051,523],{"class":206},[163,5053,112],{"class":203},[163,5055,528],{"class":206},[163,5057,531],{"class":203},[15,5059,534],{},[137,5061,538],{"id":537},[15,5063,541],{},[15,5065,544],{},[24,5067,5068,5070,5072,5074,5076],{},[27,5069,549],{},[27,5071,552],{},[27,5073,555],{},[27,5075,558],{},[27,5077,561],{},[15,5079,564],{},[154,5081,5082],{"className":156,"code":567,"language":158,"meta":159,"style":159},[19,5083,5084,5094,5104,5108,5148,5166,5188,5192,5210],{"__ignoreMap":159},[163,5085,5086,5088,5090,5092],{"class":165,"line":166},[163,5087,340],{"class":169},[163,5089,343],{"class":173},[163,5091,170],{"class":169},[163,5093,348],{"class":173},[163,5095,5096,5098,5100,5102],{"class":165,"line":183},[163,5097,170],{"class":169},[163,5099,174],{"class":173},[163,5101,177],{"class":169},[163,5103,180],{"class":173},[163,5105,5106],{"class":165,"line":190},[163,5107,187],{"emptyLinePlaceholder":186},[163,5109,5110,5112,5114,5116,5118,5120,5122,5124,5126,5128,5130,5132,5134,5136,5138,5140,5142,5144,5146],{"class":165,"line":393},[163,5111,357],{"class":173},[163,5113,197],{"class":196},[163,5115,362],{"class":206},[163,5117,210],{"class":203},[163,5119,214],{"class":213},[163,5121,218],{"class":217},[163,5123,222],{"class":221},[163,5125,226],{"class":225},[163,5127,229],{"class":221},[163,5129,233],{"class":232},[163,5131,236],{"class":221},[163,5133,239],{"class":225},[163,5135,242],{"class":221},[163,5137,112],{"class":232},[163,5139,247],{"class":221},[163,5141,218],{"class":217},[163,5143,630],{"class":203},[163,5145,633],{"class":206},[163,5147,636],{"class":203},[163,5149,5150,5152,5154,5156,5158,5160,5162,5164],{"class":165,"line":416},[163,5151,641],{"class":503},[163,5153,210],{"class":203},[163,5155,218],{"class":217},[163,5157,648],{"class":434},[163,5159,218],{"class":217},[163,5161,439],{"class":203},[163,5163,401],{"class":206},[163,5165,252],{"class":203},[163,5167,5168,5170,5172,5174,5176,5178,5180,5182,5184,5186],{"class":165,"line":421},[163,5169,641],{"class":503},[163,5171,210],{"class":203},[163,5173,218],{"class":217},[163,5175,667],{"class":434},[163,5177,218],{"class":217},[163,5179,439],{"class":203},[163,5181,401],{"class":206},[163,5183,112],{"class":203},[163,5185,528],{"class":206},[163,5187,531],{"class":203},[163,5189,5190],{"class":165,"line":460},[163,5191,187],{"emptyLinePlaceholder":186},[163,5193,5194,5196,5198,5200,5202,5204,5206,5208],{"class":165,"line":478},[163,5195,193],{"class":173},[163,5197,197],{"class":196},[163,5199,200],{"class":173},[163,5201,112],{"class":203},[163,5203,207],{"class":206},[163,5205,210],{"class":203},[163,5207,700],{"class":206},[163,5209,252],{"class":203},[163,5211,5212,5214,5216,5218,5220,5222],{"class":165,"line":500},[163,5213,641],{"class":503},[163,5215,210],{"class":203},[163,5217,711],{"class":206},[163,5219,112],{"class":203},[163,5221,716],{"class":206},[163,5223,531],{"class":203},[15,5225,721,5226,725],{},[19,5227,724],{},[137,5229,729],{"id":728},[15,5231,732,5232,735],{},[19,5233,99],{},[15,5235,738],{},[154,5237,5238],{"className":156,"code":741,"language":158,"meta":159,"style":159},[19,5239,5240,5250,5254],{"__ignoreMap":159},[163,5241,5242,5244,5246,5248],{"class":165,"line":166},[163,5243,170],{"class":169},[163,5245,174],{"class":173},[163,5247,177],{"class":169},[163,5249,180],{"class":173},[163,5251,5252],{"class":165,"line":183},[163,5253,187],{"emptyLinePlaceholder":186},[163,5255,5256,5258,5260,5262,5264,5266,5268,5270,5272,5274,5276,5278,5280,5282,5284,5286,5288,5290,5292],{"class":165,"line":190},[163,5257,193],{"class":173},[163,5259,197],{"class":196},[163,5261,200],{"class":173},[163,5263,112],{"class":203},[163,5265,207],{"class":206},[163,5267,210],{"class":203},[163,5269,214],{"class":213},[163,5271,218],{"class":217},[163,5273,222],{"class":221},[163,5275,226],{"class":225},[163,5277,229],{"class":221},[163,5279,784],{"class":225},[163,5281,787],{"class":221},[163,5283,790],{"class":225},[163,5285,793],{"class":221},[163,5287,112],{"class":232},[163,5289,247],{"class":221},[163,5291,218],{"class":217},[163,5293,252],{"class":203},[15,5295,804],{},[137,5297,808],{"id":807},[15,5299,5300,813,5302,53,5304,818],{},[19,5301,21],{},[19,5303,70],{},[19,5305,67],{},[24,5307,5308,5310,5312,5314],{},[27,5309,823],{},[27,5311,826],{},[27,5313,829],{},[27,5315,832],{},[15,5317,835],{},[154,5319,5320],{"className":156,"code":838,"language":158,"meta":159,"style":159},[19,5321,5322,5332,5336,5358,5362,5368,5374,5396,5404,5418,5422,5428,5434,5456,5464],{"__ignoreMap":159},[163,5323,5324,5326,5328,5330],{"class":165,"line":166},[163,5325,170],{"class":169},[163,5327,174],{"class":173},[163,5329,177],{"class":169},[163,5331,180],{"class":173},[163,5333,5334],{"class":165,"line":183},[163,5335,187],{"emptyLinePlaceholder":186},[163,5337,5338,5340,5342,5344,5346,5348,5350,5352,5354,5356],{"class":165,"line":190},[163,5339,641],{"class":503},[163,5341,210],{"class":203},[163,5343,218],{"class":217},[163,5345,865],{"class":434},[163,5347,218],{"class":217},[163,5349,439],{"class":203},[163,5351,200],{"class":206},[163,5353,112],{"class":203},[163,5355,877],{"class":876},[163,5357,252],{"class":203},[163,5359,5360],{"class":165,"line":393},[163,5361,187],{"emptyLinePlaceholder":186},[163,5363,5364,5366],{"class":165,"line":416},[163,5365,888],{"class":169},[163,5367,475],{"class":203},[163,5369,5370,5372],{"class":165,"line":421},[163,5371,895],{"class":169},[163,5373,898],{"class":173},[163,5375,5376,5378,5380,5382,5384,5386,5388,5390,5392,5394],{"class":165,"line":460},[163,5377,504],{"class":503},[163,5379,210],{"class":203},[163,5381,218],{"class":217},[163,5383,909],{"class":434},[163,5385,218],{"class":217},[163,5387,439],{"class":203},[163,5389,916],{"class":206},[163,5391,112],{"class":203},[163,5393,877],{"class":876},[163,5395,252],{"class":203},[163,5397,5398,5400,5402],{"class":165,"line":478},[163,5399,927],{"class":169},[163,5401,931],{"class":930},[163,5403,475],{"class":203},[163,5405,5406,5408,5410,5412,5414,5416],{"class":165,"line":500},[163,5407,504],{"class":503},[163,5409,210],{"class":203},[163,5411,218],{"class":217},[163,5413,944],{"class":434},[163,5415,218],{"class":217},[163,5417,252],{"class":203},[163,5419,5420],{"class":165,"line":951},[163,5421,187],{"emptyLinePlaceholder":186},[163,5423,5424,5426],{"class":165,"line":956},[163,5425,888],{"class":169},[163,5427,475],{"class":203},[163,5429,5430,5432],{"class":165,"line":963},[163,5431,895],{"class":169},[163,5433,968],{"class":173},[163,5435,5436,5438,5440,5442,5444,5446,5448,5450,5452,5454],{"class":165,"line":971},[163,5437,504],{"class":503},[163,5439,210],{"class":203},[163,5441,218],{"class":217},[163,5443,980],{"class":434},[163,5445,218],{"class":217},[163,5447,439],{"class":203},[163,5449,987],{"class":206},[163,5451,112],{"class":203},[163,5453,877],{"class":876},[163,5455,252],{"class":203},[163,5457,5458,5460,5462],{"class":165,"line":996},[163,5459,927],{"class":169},[163,5461,931],{"class":930},[163,5463,475],{"class":203},[163,5465,5466,5468,5470,5472,5474,5476],{"class":165,"line":1005},[163,5467,504],{"class":503},[163,5469,210],{"class":203},[163,5471,218],{"class":217},[163,5473,1014],{"class":434},[163,5475,218],{"class":217},[163,5477,252],{"class":203},[15,5479,1021,5480,1024,5482,1027,5484,1030],{},[19,5481,70],{},[19,5483,67],{},[19,5485,21],{},[137,5487,1034],{"id":1033},[15,5489,1037],{},[24,5491,5492,5494],{},[27,5493,1042],{},[27,5495,1045],{},[15,5497,1048],{},[137,5499,1052],{"id":1051},[15,5501,1055],{},[24,5503,5504,5510,5512,5514],{},[27,5505,1060,5506,53,5508],{},[19,5507,52],{},[19,5509,56],{},[27,5511,1067],{},[27,5513,1070],{},[27,5515,1073],{},[15,5517,1076],{},[154,5519,5520],{"className":156,"code":1079,"language":158,"meta":159,"style":159},[19,5521,5522,5532,5536,5564,5588],{"__ignoreMap":159},[163,5523,5524,5526,5528,5530],{"class":165,"line":166},[163,5525,340],{"class":169},[163,5527,343],{"class":173},[163,5529,170],{"class":169},[163,5531,348],{"class":173},[163,5533,5534],{"class":165,"line":183},[163,5535,187],{"emptyLinePlaceholder":186},[163,5537,5538,5540,5542,5544,5546,5548,5550,5552,5554,5556,5558,5560,5562],{"class":165,"line":190},[163,5539,1100],{"class":173},[163,5541,197],{"class":196},[163,5543,362],{"class":206},[163,5545,210],{"class":203},[163,5547,214],{"class":213},[163,5549,218],{"class":217},[163,5551,222],{"class":221},[163,5553,226],{"class":225},[163,5555,229],{"class":221},[163,5557,233],{"class":232},[163,5559,236],{"class":221},[163,5561,218],{"class":217},[163,5563,252],{"class":203},[163,5565,5566,5568,5570,5572,5574,5576,5578,5580,5582,5584,5586],{"class":165,"line":393},[163,5567,463],{"class":169},[163,5569,1131],{"class":173},[163,5571,469],{"class":169},[163,5573,1136],{"class":173},[163,5575,112],{"class":203},[163,5577,1141],{"class":206},[163,5579,210],{"class":203},[163,5581,218],{"class":217},[163,5583,1148],{"class":434},[163,5585,218],{"class":217},[163,5587,1153],{"class":203},[163,5589,5590,5592,5594,5596,5598,5600,5602,5604,5606,5608,5610,5612,5614,5616,5618,5620],{"class":165,"line":416},[163,5591,504],{"class":503},[163,5593,210],{"class":203},[163,5595,1162],{"class":206},[163,5597,112],{"class":203},[163,5599,1168],{"class":1167},[163,5601,439],{"class":203},[163,5603,1173],{"class":206},[163,5605,112],{"class":203},[163,5607,1178],{"class":206},[163,5609,1181],{"class":203},[163,5611,1184],{"class":1167},[163,5613,439],{"class":203},[163,5615,442],{"class":217},[163,5617,1191],{"class":434},[163,5619,218],{"class":217},[163,5621,252],{"class":203},[15,5623,1198,5624,106,5626,1203,5628,1206],{},[19,5625,99],{},[19,5627,52],{},[19,5629,56],{},[137,5631,1210],{"id":1209},[15,5633,1213],{},[24,5635,5636,5638,5640],{},[27,5637,1218],{},[27,5639,1221],{},[27,5641,1224],{},[15,5643,1227,5644,1230],{},[19,5645,321],{},[15,5647,1233],{},[24,5649,5650,5652,5654,5656],{},[27,5651,1238],{},[27,5653,1241],{},[27,5655,1244],{},[27,5657,1247],{},[15,5659,1250],{},[137,5661,1254],{"id":1253},[15,5663,1257],{},[15,5665,1260],{},[24,5667,5668,5670,5672,5674],{},[27,5669,1265],{},[27,5671,1268],{},[27,5673,1271],{},[27,5675,1274],{},[15,5677,1277],{},[154,5679,5680],{"className":156,"code":1280,"language":158,"meta":159,"style":159},[19,5681,5682,5692,5696,5736,5750,5772],{"__ignoreMap":159},[163,5683,5684,5686,5688,5690],{"class":165,"line":166},[163,5685,170],{"class":169},[163,5687,174],{"class":173},[163,5689,177],{"class":169},[163,5691,180],{"class":173},[163,5693,5694],{"class":165,"line":183},[163,5695,187],{"emptyLinePlaceholder":186},[163,5697,5698,5700,5702,5704,5706,5708,5710,5712,5714,5716,5718,5720,5722,5724,5726,5728,5730,5732,5734],{"class":165,"line":190},[163,5699,193],{"class":173},[163,5701,197],{"class":196},[163,5703,200],{"class":173},[163,5705,112],{"class":203},[163,5707,207],{"class":206},[163,5709,210],{"class":203},[163,5711,214],{"class":213},[163,5713,218],{"class":217},[163,5715,222],{"class":221},[163,5717,226],{"class":225},[163,5719,229],{"class":221},[163,5721,233],{"class":232},[163,5723,236],{"class":221},[163,5725,239],{"class":225},[163,5727,242],{"class":221},[163,5729,112],{"class":232},[163,5731,247],{"class":221},[163,5733,218],{"class":217},[163,5735,252],{"class":203},[163,5737,5738,5740,5742,5744,5746,5748],{"class":165,"line":393},[163,5739,641],{"class":503},[163,5741,210],{"class":203},[163,5743,711],{"class":206},[163,5745,112],{"class":203},[163,5747,1349],{"class":1167},[163,5749,252],{"class":203},[163,5751,5752,5754,5756,5758,5760,5762,5764,5766,5768,5770],{"class":165,"line":416},[163,5753,641],{"class":503},[163,5755,210],{"class":203},[163,5757,711],{"class":206},[163,5759,112],{"class":203},[163,5761,1364],{"class":1167},[163,5763,112],{"class":203},[163,5765,1369],{"class":206},[163,5767,1181],{"class":203},[163,5769,1374],{"class":206},[163,5771,531],{"class":203},[163,5773,5774,5776,5778,5780,5782,5784,5786,5788],{"class":165,"line":421},[163,5775,641],{"class":503},[163,5777,210],{"class":203},[163,5779,711],{"class":206},[163,5781,112],{"class":203},[163,5783,1389],{"class":1167},[163,5785,112],{"class":203},[163,5787,1394],{"class":206},[163,5789,531],{"class":203},[15,5791,1399],{},[137,5793,1403],{"id":1402},[15,5795,1406],{},[154,5797,5798],{"className":156,"code":1409,"language":158,"meta":159,"style":159},[19,5799,5800,5810,5814,5844,5848,5878],{"__ignoreMap":159},[163,5801,5802,5804,5806,5808],{"class":165,"line":166},[163,5803,170],{"class":169},[163,5805,174],{"class":173},[163,5807,177],{"class":169},[163,5809,180],{"class":173},[163,5811,5812],{"class":165,"line":183},[163,5813,187],{"emptyLinePlaceholder":186},[163,5815,5816,5818,5820,5822,5824,5826,5828,5830,5832,5834,5836,5838,5840,5842],{"class":165,"line":190},[163,5817,1430],{"class":173},[163,5819,197],{"class":196},[163,5821,1435],{"class":213},[163,5823,218],{"class":217},[163,5825,222],{"class":221},[163,5827,226],{"class":225},[163,5829,229],{"class":221},[163,5831,233],{"class":232},[163,5833,236],{"class":221},[163,5835,239],{"class":225},[163,5837,242],{"class":221},[163,5839,112],{"class":232},[163,5841,247],{"class":221},[163,5843,1458],{"class":217},[163,5845,5846],{"class":165,"line":393},[163,5847,187],{"emptyLinePlaceholder":186},[163,5849,5850,5852,5854,5856,5858,5860,5862,5864,5866,5868,5870,5872,5874,5876],{"class":165,"line":416},[163,5851,1467],{"class":173},[163,5853,197],{"class":196},[163,5855,200],{"class":173},[163,5857,112],{"class":203},[163,5859,207],{"class":206},[163,5861,210],{"class":203},[163,5863,1162],{"class":206},[163,5865,439],{"class":203},[163,5867,1485],{"class":1484},[163,5869,197],{"class":196},[163,5871,218],{"class":217},[163,5873,67],{"class":434},[163,5875,218],{"class":217},[163,5877,252],{"class":203},[163,5879,5880,5882,5884,5886,5888,5890,5892,5894,5896,5898,5900,5902,5904,5906],{"class":165,"line":421},[163,5881,1500],{"class":173},[163,5883,197],{"class":196},[163,5885,200],{"class":173},[163,5887,112],{"class":203},[163,5889,207],{"class":206},[163,5891,210],{"class":203},[163,5893,1162],{"class":206},[163,5895,439],{"class":203},[163,5897,1485],{"class":1484},[163,5899,197],{"class":196},[163,5901,218],{"class":217},[163,5903,70],{"class":434},[163,5905,218],{"class":217},[163,5907,252],{"class":203},[15,5909,1529],{},[10,5911,1533],{"id":1532},[137,5913,1537,5914,1540],{"id":1536},[19,5915,21],{},[154,5917,5918],{"className":156,"code":1543,"language":158,"meta":159,"style":159},[19,5919,5920,5930,5934,5974,5988],{"__ignoreMap":159},[163,5921,5922,5924,5926,5928],{"class":165,"line":166},[163,5923,170],{"class":169},[163,5925,174],{"class":173},[163,5927,177],{"class":169},[163,5929,180],{"class":173},[163,5931,5932],{"class":165,"line":183},[163,5933,187],{"emptyLinePlaceholder":186},[163,5935,5936,5938,5940,5942,5944,5946,5948,5950,5952,5954,5956,5958,5960,5962,5964,5966,5968,5970,5972],{"class":165,"line":190},[163,5937,193],{"class":173},[163,5939,197],{"class":196},[163,5941,200],{"class":173},[163,5943,112],{"class":203},[163,5945,207],{"class":206},[163,5947,210],{"class":203},[163,5949,214],{"class":213},[163,5951,218],{"class":217},[163,5953,222],{"class":221},[163,5955,226],{"class":225},[163,5957,229],{"class":221},[163,5959,233],{"class":232},[163,5961,236],{"class":221},[163,5963,1590],{"class":232},[163,5965,1593],{"class":221},[163,5967,112],{"class":232},[163,5969,247],{"class":221},[163,5971,218],{"class":217},[163,5973,252],{"class":203},[163,5975,5976,5978,5980,5982,5984,5986],{"class":165,"line":393},[163,5977,641],{"class":503},[163,5979,210],{"class":203},[163,5981,711],{"class":206},[163,5983,112],{"class":203},[163,5985,716],{"class":206},[163,5987,531],{"class":203},[163,5989,5990,5992,5994,5996,5998,6000],{"class":165,"line":416},[163,5991,641],{"class":503},[163,5993,210],{"class":203},[163,5995,711],{"class":206},[163,5997,112],{"class":203},[163,5999,1349],{"class":1167},[163,6001,252],{"class":203},[137,6003,1633],{"id":1632},[154,6005,6006],{"className":156,"code":1636,"language":158,"meta":159,"style":159},[19,6007,6008,6018,6022,6058,6076,6080,6130,6148],{"__ignoreMap":159},[163,6009,6010,6012,6014,6016],{"class":165,"line":166},[163,6011,340],{"class":169},[163,6013,343],{"class":173},[163,6015,170],{"class":169},[163,6017,348],{"class":173},[163,6019,6020],{"class":165,"line":183},[163,6021,187],{"emptyLinePlaceholder":186},[163,6023,6024,6026,6028,6030,6032,6034,6036,6038,6040,6042,6044,6046,6048,6050,6052,6054,6056],{"class":165,"line":190},[163,6025,357],{"class":173},[163,6027,197],{"class":196},[163,6029,362],{"class":206},[163,6031,210],{"class":203},[163,6033,214],{"class":213},[163,6035,218],{"class":217},[163,6037,222],{"class":221},[163,6039,226],{"class":225},[163,6041,229],{"class":221},[163,6043,233],{"class":232},[163,6045,236],{"class":221},[163,6047,1590],{"class":232},[163,6049,1593],{"class":221},[163,6051,112],{"class":232},[163,6053,247],{"class":221},[163,6055,218],{"class":217},[163,6057,252],{"class":203},[163,6059,6060,6062,6064,6066,6068,6070,6072,6074],{"class":165,"line":393},[163,6061,396],{"class":173},[163,6063,197],{"class":196},[163,6065,401],{"class":173},[163,6067,112],{"class":203},[163,6069,406],{"class":206},[163,6071,210],{"class":203},[163,6073,411],{"class":217},[163,6075,252],{"class":203},[163,6077,6078],{"class":165,"line":416},[163,6079,187],{"emptyLinePlaceholder":186},[163,6081,6082,6084,6086,6088,6090,6092,6094,6096,6098,6100,6102,6104,6106,6108,6110,6112,6114,6116,6118,6120,6122,6124,6126,6128],{"class":165,"line":421},[163,6083,463],{"class":169},[163,6085,466],{"class":173},[163,6087,469],{"class":169},[163,6089,429],{"class":203},[163,6091,218],{"class":217},[163,6093,99],{"class":434},[163,6095,218],{"class":217},[163,6097,439],{"class":203},[163,6099,442],{"class":217},[163,6101,52],{"class":434},[163,6103,218],{"class":217},[163,6105,439],{"class":203},[163,6107,442],{"class":217},[163,6109,56],{"class":434},[163,6111,218],{"class":217},[163,6113,439],{"class":203},[163,6115,442],{"class":217},[163,6117,315],{"class":434},[163,6119,218],{"class":217},[163,6121,439],{"class":203},[163,6123,442],{"class":217},[163,6125,321],{"class":434},[163,6127,218],{"class":217},[163,6129,1761],{"class":203},[163,6131,6132,6134,6136,6138,6140,6142,6144,6146],{"class":165,"line":460},[163,6133,481],{"class":173},[163,6135,197],{"class":196},[163,6137,486],{"class":173},[163,6139,112],{"class":203},[163,6141,406],{"class":206},[163,6143,210],{"class":203},[163,6145,495],{"class":206},[163,6147,252],{"class":203},[163,6149,6150,6152,6154,6156,6158,6160,6162,6164,6166,6168,6170,6172,6174,6176,6178,6180,6182,6184],{"class":165,"line":478},[163,6151,504],{"class":503},[163,6153,210],{"class":203},[163,6155,1788],{"class":213},[163,6157,218],{"class":434},[163,6159,1794],{"class":1793},[163,6161,509],{"class":206},[163,6163,112],{"class":203},[163,6165,1168],{"class":1167},[163,6167,1803],{"class":1793},[163,6169,1806],{"class":434},[163,6171,1794],{"class":1793},[163,6173,509],{"class":206},[163,6175,112],{"class":203},[163,6177,528],{"class":206},[163,6179,1817],{"class":203},[163,6181,1803],{"class":1793},[163,6183,218],{"class":434},[163,6185,252],{"class":203},[137,6187,1827],{"id":1826},[154,6189,6190],{"className":156,"code":1830,"language":158,"meta":159,"style":159},[19,6191,6192,6202,6206,6228,6246],{"__ignoreMap":159},[163,6193,6194,6196,6198,6200],{"class":165,"line":166},[163,6195,340],{"class":169},[163,6197,343],{"class":173},[163,6199,170],{"class":169},[163,6201,348],{"class":173},[163,6203,6204],{"class":165,"line":183},[163,6205,187],{"emptyLinePlaceholder":186},[163,6207,6208,6210,6212,6214,6216,6218,6220,6222,6224,6226],{"class":165,"line":190},[163,6209,357],{"class":173},[163,6211,197],{"class":196},[163,6213,362],{"class":206},[163,6215,210],{"class":203},[163,6217,218],{"class":217},[163,6219,1861],{"class":434},[163,6221,218],{"class":217},[163,6223,630],{"class":203},[163,6225,633],{"class":206},[163,6227,636],{"class":203},[163,6229,6230,6232,6234,6236,6238,6240,6242,6244],{"class":165,"line":393},[163,6231,641],{"class":503},[163,6233,210],{"class":203},[163,6235,218],{"class":217},[163,6237,1880],{"class":434},[163,6239,218],{"class":217},[163,6241,439],{"class":203},[163,6243,401],{"class":206},[163,6245,252],{"class":203},[163,6247,6248,6250,6252,6254,6256,6258,6260,6262,6264,6266],{"class":165,"line":416},[163,6249,641],{"class":503},[163,6251,210],{"class":203},[163,6253,218],{"class":217},[163,6255,667],{"class":434},[163,6257,218],{"class":217},[163,6259,439],{"class":203},[163,6261,401],{"class":206},[163,6263,112],{"class":203},[163,6265,528],{"class":206},[163,6267,531],{"class":203},[137,6269,1914],{"id":1913},[154,6271,6272],{"className":156,"code":1917,"language":158,"meta":159,"style":159},[19,6273,6274,6284,6288,6318,6322,6348,6354,6380,6416,6428],{"__ignoreMap":159},[163,6275,6276,6278,6280,6282],{"class":165,"line":166},[163,6277,170],{"class":169},[163,6279,174],{"class":173},[163,6281,177],{"class":169},[163,6283,180],{"class":173},[163,6285,6286],{"class":165,"line":183},[163,6287,187],{"emptyLinePlaceholder":186},[163,6289,6290,6292,6294,6296,6298,6300,6302,6304,6306,6308,6310,6312,6314,6316],{"class":165,"line":190},[163,6291,1430],{"class":173},[163,6293,197],{"class":196},[163,6295,1435],{"class":213},[163,6297,218],{"class":217},[163,6299,222],{"class":221},[163,6301,226],{"class":225},[163,6303,229],{"class":221},[163,6305,233],{"class":232},[163,6307,236],{"class":221},[163,6309,1590],{"class":232},[163,6311,1593],{"class":221},[163,6313,112],{"class":232},[163,6315,247],{"class":221},[163,6317,1458],{"class":217},[163,6319,6320],{"class":165,"line":393},[163,6321,187],{"emptyLinePlaceholder":186},[163,6323,6324,6326,6328,6330,6332,6334,6336,6338,6340,6342,6344,6346],{"class":165,"line":416},[163,6325,463],{"class":169},[163,6327,1974],{"class":173},[163,6329,469],{"class":169},[163,6331,429],{"class":203},[163,6333,218],{"class":217},[163,6335,67],{"class":434},[163,6337,218],{"class":217},[163,6339,439],{"class":203},[163,6341,442],{"class":217},[163,6343,70],{"class":434},[163,6345,218],{"class":217},[163,6347,1761],{"class":203},[163,6349,6350,6352],{"class":165,"line":421},[163,6351,1999],{"class":169},[163,6353,475],{"class":203},[163,6355,6356,6358,6360,6362,6364,6366,6368,6370,6372,6374,6376,6378],{"class":165,"line":460},[163,6357,2006],{"class":173},[163,6359,197],{"class":196},[163,6361,200],{"class":173},[163,6363,112],{"class":203},[163,6365,207],{"class":206},[163,6367,210],{"class":203},[163,6369,1162],{"class":206},[163,6371,439],{"class":203},[163,6373,1485],{"class":1484},[163,6375,197],{"class":196},[163,6377,2027],{"class":206},[163,6379,252],{"class":203},[163,6381,6382,6384,6386,6388,6390,6392,6394,6396,6398,6400,6402,6404,6406,6408,6410,6412,6414],{"class":165,"line":478},[163,6383,2034],{"class":503},[163,6385,210],{"class":203},[163,6387,1788],{"class":213},[163,6389,218],{"class":434},[163,6391,1794],{"class":1793},[163,6393,2027],{"class":206},[163,6395,1803],{"class":1793},[163,6397,2049],{"class":434},[163,6399,439],{"class":203},[163,6401,2054],{"class":503},[163,6403,210],{"class":203},[163,6405,711],{"class":206},[163,6407,2061],{"class":203},[163,6409,442],{"class":217},[163,6411,2066],{"class":434},[163,6413,218],{"class":217},[163,6415,252],{"class":203},[163,6417,6418,6420,6422,6424,6426],{"class":165,"line":500},[163,6419,2075],{"class":169},[163,6421,2078],{"class":930},[163,6423,2081],{"class":169},[163,6425,2084],{"class":173},[163,6427,475],{"class":203},[163,6429,6430,6432,6434,6436,6438,6440,6442,6444,6446,6448,6450],{"class":165,"line":951},[163,6431,2034],{"class":503},[163,6433,210],{"class":203},[163,6435,1788],{"class":213},[163,6437,218],{"class":434},[163,6439,1794],{"class":1793},[163,6441,2027],{"class":206},[163,6443,1803],{"class":1793},[163,6445,2105],{"class":434},[163,6447,439],{"class":203},[163,6449,2084],{"class":206},[163,6451,252],{"class":203},[137,6453,2115],{"id":2114},[154,6455,6456],{"className":156,"code":2118,"language":158,"meta":159,"style":159},[19,6457,6458,6468,6472,6502,6506,6512,6530,6544,6556,6570,6588],{"__ignoreMap":159},[163,6459,6460,6462,6464,6466],{"class":165,"line":166},[163,6461,170],{"class":169},[163,6463,174],{"class":173},[163,6465,177],{"class":169},[163,6467,180],{"class":173},[163,6469,6470],{"class":165,"line":183},[163,6471,187],{"emptyLinePlaceholder":186},[163,6473,6474,6476,6478,6480,6482,6484,6486,6488,6490,6492,6494,6496,6498,6500],{"class":165,"line":190},[163,6475,1430],{"class":173},[163,6477,197],{"class":196},[163,6479,1435],{"class":213},[163,6481,218],{"class":217},[163,6483,222],{"class":221},[163,6485,226],{"class":225},[163,6487,229],{"class":221},[163,6489,233],{"class":232},[163,6491,236],{"class":221},[163,6493,1590],{"class":232},[163,6495,1593],{"class":221},[163,6497,112],{"class":232},[163,6499,247],{"class":221},[163,6501,1458],{"class":217},[163,6503,6504],{"class":165,"line":393},[163,6505,187],{"emptyLinePlaceholder":186},[163,6507,6508,6510],{"class":165,"line":416},[163,6509,888],{"class":169},[163,6511,475],{"class":203},[163,6513,6514,6516,6518,6520,6522,6524,6526,6528],{"class":165,"line":421},[163,6515,2179],{"class":173},[163,6517,197],{"class":196},[163,6519,200],{"class":173},[163,6521,112],{"class":203},[163,6523,207],{"class":206},[163,6525,210],{"class":203},[163,6527,1162],{"class":206},[163,6529,252],{"class":203},[163,6531,6532,6534,6536,6538,6540,6542],{"class":165,"line":460},[163,6533,504],{"class":503},[163,6535,210],{"class":203},[163,6537,711],{"class":206},[163,6539,112],{"class":203},[163,6541,716],{"class":206},[163,6543,531],{"class":203},[163,6545,6546,6548,6550,6552,6554],{"class":165,"line":478},[163,6547,927],{"class":169},[163,6549,2078],{"class":930},[163,6551,2081],{"class":169},[163,6553,2084],{"class":173},[163,6555,475],{"class":203},[163,6557,6558,6560,6562,6564,6566,6568],{"class":165,"line":500},[163,6559,504],{"class":503},[163,6561,210],{"class":203},[163,6563,218],{"class":217},[163,6565,2230],{"class":434},[163,6567,218],{"class":217},[163,6569,252],{"class":203},[163,6571,6572,6574,6576,6578,6580,6582,6584,6586],{"class":165,"line":951},[163,6573,504],{"class":503},[163,6575,210],{"class":203},[163,6577,2243],{"class":930},[163,6579,210],{"class":203},[163,6581,2248],{"class":206},[163,6583,630],{"class":203},[163,6585,2253],{"class":876},[163,6587,252],{"class":203},[163,6589,6590,6592,6594,6596],{"class":165,"line":956},[163,6591,504],{"class":503},[163,6593,210],{"class":203},[163,6595,2248],{"class":206},[163,6597,252],{"class":203},[10,6599,2269],{"id":2268},[15,6601,2272],{},[24,6603,6604,6610,6618,6626,6630],{},[27,6605,6606,2281,6608,143],{},[2278,6607,2280],{},[19,6609,99],{},[27,6611,6612,1806,6614,53,6616,2293],{},[2278,6613,2288],{},[19,6615,52],{},[19,6617,56],{},[27,6619,6620,1806,6622,53,6624,2303],{},[2278,6621,2298],{},[19,6623,67],{},[19,6625,70],{},[27,6627,6628,2309],{},[2278,6629,2308],{},[27,6631,6632,2314],{},[2278,6633,74],{},[15,6635,2317],{},[15,6637,2320],{},[92,6639,6640,6642,6644,6646,6648],{},[27,6641,2325],{},[27,6643,2328],{},[27,6645,2331],{},[27,6647,2334],{},[27,6649,2337],{},[10,6651,2341],{"id":2340},[137,6653,2345],{"id":2344},[15,6655,2348],{},[137,6657,2352],{"id":2351},[15,6659,2355,6660,2358],{},[19,6661,321],{},[137,6663,2362],{"id":2361},[15,6665,2365],{},[137,6667,2369],{"id":2368},[15,6669,2372],{},[24,6671,6672,6676,6678,6680],{},[27,6673,6674],{},[19,6675,2379],{},[27,6677,1268],{},[27,6679,1265],{},[27,6681,2386],{},[15,6683,2389],{},[10,6685,2393],{"id":2392},[15,6687,2396,6688,112],{},[2398,6689,2401],{"href":2400},[15,6691,2404],{},[24,6693,6694,6698],{},[27,6695,6696],{},[2398,6697,2412],{"href":2411},[27,6699,6700],{},[2398,6701,2418],{"href":2417},[15,6703,2421,6704,112],{},[2398,6705,2424],{"href":2400},[10,6707,2428],{"id":2427},[137,6709,2432],{"id":2431},[15,6711,2435,6712,2438],{},[19,6713,99],{},[137,6715,2442,6716,53,6718,2447],{"id":2441},[19,6717,52],{},[19,6719,56],{},[15,6721,2450,6722,106,6724,109,6726,2457],{},[19,6723,99],{},[19,6725,52],{},[19,6727,56],{},[137,6729,2461,6730,53,6732,2466],{"id":2460},[19,6731,67],{},[19,6733,70],{},[15,6735,2469],{},[137,6737,2473],{"id":2472},[15,6739,2476,6740,2480,6742,112],{},[19,6741,2479],{},[19,6743,2483],{},[137,6745,2487,6746,2491],{"id":2486},[19,6747,2490],{},[15,6749,2494],{},[2496,6751,2498],{},{"title":159,"searchDepth":183,"depth":183,"links":6753},[6754,6755,6756,6768,6775,6776,6782,6783],{"id":12,"depth":183,"text":13},{"id":86,"depth":183,"text":87},{"id":134,"depth":183,"text":135,"children":6757},[6758,6759,6760,6761,6762,6763,6764,6765,6766,6767],{"id":139,"depth":190,"text":2506},{"id":284,"depth":190,"text":285},{"id":537,"depth":190,"text":538},{"id":728,"depth":190,"text":729},{"id":807,"depth":190,"text":808},{"id":1033,"depth":190,"text":1034},{"id":1051,"depth":190,"text":1052},{"id":1209,"depth":190,"text":1210},{"id":1253,"depth":190,"text":1254},{"id":1402,"depth":190,"text":1403},{"id":1532,"depth":183,"text":1533,"children":6769},[6770,6771,6772,6773,6774],{"id":1536,"depth":190,"text":2519},{"id":1632,"depth":190,"text":1633},{"id":1826,"depth":190,"text":1827},{"id":1913,"depth":190,"text":1914},{"id":2114,"depth":190,"text":2115},{"id":2268,"depth":183,"text":2269},{"id":2340,"depth":183,"text":2341,"children":6777},[6778,6779,6780,6781],{"id":2344,"depth":190,"text":2345},{"id":2351,"depth":190,"text":2352},{"id":2361,"depth":190,"text":2362},{"id":2368,"depth":190,"text":2369},{"id":2392,"depth":183,"text":2393},{"id":2427,"depth":183,"text":2428,"children":6784},[6785,6786,6787,6788,6789],{"id":2431,"depth":190,"text":2432},{"id":2441,"depth":190,"text":2536},{"id":2460,"depth":190,"text":2538},{"id":2472,"depth":190,"text":2473},{"id":2486,"depth":190,"text":2541},{},{"title":5,"description":2542},1776966206017]