def test_random_state(): # no seeds reno = Community.from_census(msa_fips="39900", datastore=DataStore()) r1 = reno.cluster(columns=columns, method="kmeans", n_clusters=5) r2 = reno.cluster(columns=columns, method="kmeans", n_clusters=5) card1 = r1.gdf.groupby("kmeans").count()["geoid"].values card1.sort() card2 = r2.gdf.groupby("kmeans").count()["geoid"].values card2.sort() # test that the cardinalities are different np.testing.assert_raises( AssertionError, np.testing.assert_array_equal, card1, card2 ) # seeds reno = Community.from_census(msa_fips="39900", datastore=DataStore()) seed = 10 r1 = reno.cluster(columns=columns, method="kmeans", n_clusters=5, random_state=seed) r2 = reno.cluster(columns=columns, method="kmeans", n_clusters=5, random_state=seed) card1 = r1.gdf.groupby("kmeans").count()["geoid"].values card1.sort() card2 = r2.gdf.groupby("kmeans").count()["geoid"].values card2.sort() # test that the cardinalities are identical np.testing.assert_array_equal(card1, card2)
def test_harmonize_area(): la = Community.from_census(county_fips="06037") harmonized = la.harmonize(2000, extensive_variables=["n_total_housing_units"], intensive_variables=["p_vacant_housing_units"], raster=local_raster) assert_allclose( harmonized.gdf[harmonized.gdf.year == 2000].n_total_housing_units.sum(), 3271578.974605, atol=600, ) assert_allclose( harmonized.gdf[harmonized.gdf.year == 1990].n_total_housing_units.sum(), 3163560.996240, ) assert_allclose( harmonized.gdf[harmonized.gdf.year == 2010].n_total_housing_units.sum(), 3441415.997327, ) assert_allclose(harmonized.gdf.p_vacant_housing_units.sum(), 33011.58879, rtol=1e-03)
def test_harmonize_area_weighted(): balt = Community.from_census(county_fips="24510") harmonized_nlcd_weighted = balt.harmonize( 2000, extensive_variables=["n_total_housing_units"], intensive_variables=["p_vacant_housing_units"], weights_method="dasymetric", raster=local_raster) assert harmonized_nlcd_weighted.gdf.n_total_housing_units.sum() == 900620.0 assert_allclose(harmonized_nlcd_weighted.gdf.p_vacant_housing_units.sum(), 8832.8796, rtol=1e-03)
def test_Community_from_census(): assert Community.from_census(state_fips="24").gdf.shape == (3759, 195)
def test_Community_from_boundary(): msas = datasets.msas() reno = msas[msas["geoid"] == "39900"] rn = Community.from_census(boundary=reno) assert rn.gdf.shape == (234, 195)
def test_Community_from_stcofips(): mn = Community.from_census(state_fips="27", county_fips=["26001", "26002"]) assert mn.gdf.shape == (3881, 195)
def test_Community_from_cbsa(): la = Community.from_census(msa_fips="31080") assert la.gdf.shape == (7683, 195)
from geosnap import Community, io import numpy as np reno = Community.from_census(msa_fips="39900") columns = ["median_household_income", "p_poverty_rate", "p_unemployment_rate"] # Aspatial Clusters def test_gm(): r = reno.cluster(columns=columns, method="gaussian_mixture", best_model=True) assert len(r.gdf.gaussian_mixture.unique()) >= 5 def test_ward(): r = reno.cluster(columns=columns, method="ward") assert len(r.gdf.ward.unique()) == 7 def test_spectral(): r = reno.cluster(columns=columns, method="spectral") assert len(r.gdf.spectral.unique()) == 7 def test_kmeans(): r = reno.cluster(columns=columns, method="kmeans")
from geosnap import Community import numpy as np from geosnap import DataStore from numpy.testing import assert_array_equal, assert_array_almost_equal reno = Community.from_census(msa_fips="39900", datastore=DataStore()) columns = [ "median_household_income", "p_poverty_rate", "p_unemployment_rate", ] # Aspatial Clusters def test_gm(): r = reno.cluster(columns=columns, method="gaussian_mixture", best_model=True) assert len(r.gdf.gaussian_mixture.unique()) >= 5 def test_ward(): r = reno.cluster(columns=columns, method="ward") assert len(r.gdf.ward.unique()) == 7 def test_spectral(): r = reno.cluster(columns=columns, method="spectral") assert len(r.gdf.spectral.unique()) == 7
#%% from geosnap import Community #%% fip = '48' out1 = '/tmp/TX_2000.wkt' out2 = '/tmp/TX_2010.wkt' #%% data = Community.from_census(state_fips='48') dataset = data.gdf[['geometry', 'geoid', 'year']] #%% D_2000 = dataset[(dataset.year == 2000)] D_2000.to_csv(out1, sep='\t', index=False, header=False) #%% D_2010 = dataset[(dataset.year == 2010)] D_2010.to_csv(out2, sep='\t', index=False, header=False)