def create_map(iso, lon, lat): creds = Credentials(username=CARTO_USER_NAME, api_key=CARTO_API_KEY) set_default_credentials(creds) dataset_name = 'onekmiso' dataset_name = dataset_name + str(int(round(time.time() * 1000))) to_carto(iso, dataset_name, if_exists='replace', log_enabled=True) auth_client = APIKeyAuthClient(CARTO_BASE_URL, CARTO_API_KEY) FACTOR = DPI / 72.0 map_name = 'tpl_' + dataset_name create_named_map(auth_client, CARTO_USER_NAME, dataset_name, map_name, FACTOR, lon, lat) return map_name
import pandas as pd import geopandas as gpd import numpy as np import matplotlib.pyplot as plt import shapely from libpysal.weights import Queen import pointpats import pointpats.centrography from cartoframes.auth import set_default_credentials from cartoframes import read_carto from cartoframes import to_carto set_default_credentials('ebook-sds') ## The Meuse dataset from R gstat package class GetMeuse(): def __init__(self): self.data = read_carto('meuse') self.data['log_zinc'] = np.log(self.data['zinc']) self.data = self.data.to_crs({'init': 'epsg:28992'}) self.data_lonlat = self.data.to_crs({'init': 'epsg:4326'}) self.data_grid = read_carto('meuse_grid') self.data_grid = self.data_grid.to_crs({'init': 'epsg:28992'}) self.data_grid_lonlat = self.data_grid.to_crs({'init': 'epsg:4326'}) def loadpred_krg(self): self.data_krg = pd.read_csv('/tmp/meuse_krg.csv') self.data_krg = gpd.GeoDataFrame(self.data_krg, geometry=gpd.points_from_xy(self.data_krg.x, self.data_krg.y))
logger = logging.getLogger() for handler in logger.handlers: logger.removeHandler(handler) # manually set level logger.setLevel(logging.INFO) # print to console console = logging.StreamHandler() logger.addHandler(console) logging.basicConfig( format='%(asctime)s - %(name)s - %(levelname)s - %(message)s') logger.debug('Authenticate Carto credentials') CARTO_USER = os.getenv('CARTO_WRI_RW_USER') CARTO_KEY = os.getenv('CARTO_WRI_RW_KEY') set_default_credentials( username=CARTO_USER, base_url="https://{user}.carto.com/".format(user=CARTO_USER), api_key=CARTO_KEY) # prepare request parameters variables = ['o2', 'no3', 'po4'] depths = [ -0.49402499198913574, -1.5413750410079956, -2.6456689834594727, -3.8194949626922607, -5.078224182128906, ] # define function for creating request def build_wms_request(x, y, variable, depth): xmin = x - 0.0
import geopandas as gpd from cartoframes.auth import set_default_credentials from cartoframes import read_carto from cartoframes import to_carto set_default_credentials("ebook-sds") def get_table(tablename): """Retrieve tablename as a GeoDataFrame ordered by database id Returns: geopandas.GeoDataFrame: GeoDataFrame representation of table """ base_query = ("SELECT * FROM {tablename} ORDER BY cartodb_id ASC").format( tablename=tablename) data_carto = read_carto(base_query) ## Renaming the geometry column from 'the_geom' to 'geometry' ## (pysal expect the geometry column to be called 'geometry') data = data_carto.copy() data['geometry'] = data.geometry data.drop(['the_geom'], axis=1, inplace=True) data = gpd.GeoDataFrame(data, geometry='geometry') data.crs = {"init": "epsg:4326"} return data def get_nyc_census_tracts(): """Retrieve dataset on NYC Census Tracts
import pandas as pd import geopandas as gpd import numpy as np import matplotlib.pyplot as plt import shapely from libpysal.weights import Queen import pointpats import pointpats.centrography from cartoframes.auth import set_default_credentials from cartoframes.data import Dataset set_default_credentials('eschbacher') ## The Meuse dataset from R gstat package class GetMeuse(): def __init__(self): self.data = gpd.GeoDataFrame( Dataset('meuse').download(decode_geom=True)) self.data['log_zinc'] = np.log(self.data['zinc']) self.data.crs = {'init': 'epsg:4326'} self.data = self.data.to_crs({'init': 'epsg:28992'}) self.data_lonlat = self.data.to_crs({'init': 'epsg:4326'}) self.data_grid = gpd.GeoDataFrame( Dataset('meuse_grid').download(decode_geom=True)) self.data_grid.crs = {'init': 'epsg:4326'} self.data_grid = self.data_grid.to_crs({'init': 'epsg:28992'}) self.data_grid_lonlat = self.data_grid.to_crs({'init': 'epsg:4326'})