def test_point_map(): x_data = [] y_data = [] # y = 150 for i in range(100, 200): x_data.append(i) y_data.append(150) # y = x - 50 for i in range(100, 200): x_data.append(i) y_data.append(i - 50) # y = 50 for i in range(100, 200): x_data.append(i) y_data.append(50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) vega_circle2d = vega_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], 3, "#2DEF4A", 0.5, "EPSG:43") vega_json = vega_circle2d.build() curve_z1 = arctern.point_map(arr_x, arr_y, vega_json.encode('utf-8')) save_png(curve_z1, "/tmp/test_curve_z1.png")
def test_point_map(): x_data = [] y_data = [] # y = 150 for i in range(100, 200): x_data.append(i) y_data.append(150) # y = x - 50 for i in range(100, 200): x_data.append(i) y_data.append(i - 50) # y = 50 for i in range(100, 200): x_data.append(i) y_data.append(50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) vega_circle2d = VegaCircle2d(300, 200, 30, "#ff0000", 0.5) vega_json = vega_circle2d.build() curve_z = arctern.point_map(arr_x, arr_y, vega_json.encode('utf-8')) save_png(curve_z, "/tmp/curve_z.png")
def test_point_map(): x_data = [] y_data = [] # y = 150 for i in range(100, 200): x_data.append(i) y_data.append(150) # y = x - 50 for i in range(100, 200): x_data.append(i) y_data.append(i - 50) # y = 50 for i in range(100, 200): x_data.append(i) y_data.append(50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) vega = vega_pointmap(1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], 3, "#2DEF4A", 0.5, "EPSG:4326") curve_z1 = arctern.point_map(vega, points) save_png(curve_z1, "/tmp/test_curve_z1.png")
def draw_heat_map(spark): df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.show(20, False) df.createOrReplaceTempView("nyc_taxi") # df.createOrReplaceGlobalTempView("nyc_taxi") res = spark.sql( "select pickup_latitude as x, pickup_longitude as y, passenger_count as w from nyc_taxi" ) res.printSchema() res.createOrReplaceTempView("pickup") register_funcs(spark) res = spark.sql( "select ST_Transform(ST_Point(x, y), 'EPSG:4326','EPSG:3857' ) as pickup_point, w from pickup" ) res.show(20, False) res.createOrReplaceTempView("project") res = spark.sql( "select Projection(pickup_point, 'POINT (4534000 -12510000)', 'POINT (4538000 -12513000)', 1024, 896) as point, w from project" ) res.show(20, False) vega_heat_map = VegaHeatMap(300, 200, 10.0) vega = vega_heat_map.build() res = heatmap(res, vega) save_png(res, '/tmp/heatmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi")
def draw_world_include_province_weighted_point_map(spark): # 1 df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "Province string, Country string, Longitude double, Latitude double, ConfirmedCount int," "DeadCount int, CuredCount int, LastUpdateTime string").load( country_with_province_csv).cache() df.createOrReplaceTempView("COVID_country_province") register_funcs(spark) res2 = spark.sql( "select ST_Point(Longitude, Latitude) as point, ConfirmedCount as s from COVID_country_province " "where LastUpdateTime like '%03-29%'") res2.createOrReplaceTempView("res2") res2 = spark.sql("select * from res2 where point != 'POINT (nan nan)' ") vega2 = vega_weighted_pointmap( 3000, 2000, [-289.095983, -73.863121, 289.095983, 73.863121], "#F0356D", [2, 60], [6, 60], 1.0, "EPSG:4326") res_png2 = weighted_pointmap(res2, vega2) save_png(res_png2, './COVID_country_weighted_point_map2.png') spark.catalog.dropGlobalTempView("COVID_country_province")
def test_heat_map(): x_data = [] y_data = [] c_data = [] x_data.append(-73.96524) x_data.append(-73.96118) x_data.append(-73.97324) x_data.append(-73.98456) y_data.append(40.73747) y_data.append(40.74507) y_data.append(40.75890) y_data.append(40.77654) c_data.append(10) c_data.append(20) c_data.append(30) c_data.append(40) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) arr_c = pandas.Series(c_data) points = arctern.ST_Point(arr_x, arr_y) vega = vega_heatmap( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], map_zoom_level=13.0, coordinate_system='EPSG:4326') heat_map1 = arctern.heat_map_layer(vega, points, arr_c) save_png(heat_map1, "/tmp/test_heat_map1.png")
def test_choropleth_map(): wkt_data = [] count_data = [] wkt_data.append("POLYGON ((" "-73.97324 40.73747, " "-73.96524 40.74507, " "-73.96118 40.75890, " "-73.95556 40.77654, " "-73.97324 40.73747))") count_data.append(5.0) arr_wkt = pandas.Series(wkt_data) arr_wkb = arctern.ST_GeomFromText(arr_wkt) arr_count = pandas.Series(count_data) vega = vega_choroplethmap( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], color_gradient=["#0000FF", "#FF0000"], color_bound=[2.5, 5], opacity=1.0, coordinate_system='EPSG:4326') choropleth_map1 = arctern.choropleth_map_layer(vega, arr_wkb, arr_count) save_png(choropleth_map1, "/tmp/test_choropleth_map1.png")
def test_icon_viz(): x_data = [] y_data = [] x_data.append(-73.96524) x_data.append(-73.96118) x_data.append(-73.97324) x_data.append(-73.98456) y_data.append(40.73747) y_data.append(40.74507) y_data.append(40.75890) y_data.append(40.77654) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) import os dir_path = os.path.dirname(os.path.realpath(__file__)) png_path = dir_path + "/../images/taxi.png" vega = vega_icon( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], icon_path=png_path, coordinate_system="EPSG:4326") icon_buf = arctern.icon_viz_layer(vega, points) save_png(icon_buf, "/tmp/test_icon_viz.png")
def test_point_map(): x_data = [] y_data = [] # y = 150 for i in range(100, 200): x_data.append(i) y_data.append(150) # y = x - 50 for i in range(100, 200): x_data.append(i) y_data.append(i - 50) # y = 50 for i in range(100, 200): x_data.append(i) y_data.append(50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) vega = vega_pointmap( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], point_size=3, point_color="#2DEF4A", opacity=0.5, coordinate_system="EPSG:4326") curve_z1 = arctern.point_map(vega, points) save_png(curve_z1, "/tmp/test_curve_z1.png")
def draw_world_weighted_point_map(spark): df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "continent string, country string, locationId string, longitude double, latitude double," "currentConfirmedCount int, confirmedCount int, suspectedCount int, curedCount int, deadCount int, " "updateTime timestamp").load(country_csv).cache() df.createOrReplaceTempView("COVID_country") register_funcs(spark) # 1 res1 = spark.sql( "select ST_Point(longitude, latitude) as point from COVID_country ") res1.createOrReplaceTempView("res1") res1 = spark.sql("select * from res1 where point != 'POINT (nan nan)' ") res1.show(20, False) vega1 = vega_weighted_pointmap( 3000, 2000, [-289.095983, -73.863121, 289.095983, 73.863121], "#EEEEEE", [2, 60], [6], 1.0, "EPSG:4326") res_png1 = weighted_pointmap(res1, vega1) save_png(res_png1, './COVID_country_weighted_point_map1.png') spark.catalog.dropGlobalTempView("COVID_country")
def test_choropleth_map(): wkt_data = [] count_data = [] wkt_data.append("POLYGON ((" "200 200, " "200 300, " "300 300, " "300 200, " "200 200))") count_data.append(5.0) arr_wkt = pandas.Series(wkt_data) arr_wkb = arctern.wkt2wkb(arr_wkt) arr_count = pandas.Series(count_data) vega = vega_choroplethmap( 1900, 1410, bounding_box=[-73.994092, 40.753893, -73.977588, 40.759642], color_gradient=["#0000FF", "#FF0000"], color_bound=[2.5, 5], opacity=1.0, coordinate_system='EPSG:4326') choropleth_map1 = arctern.choropleth_map(vega, arr_wkb, arr_count) save_png(choropleth_map1, "/tmp/test_choropleth_map1.png")
def draw_choropleth_map(spark): start_time = time.time() df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) res = spark.sql( "select ST_GeomFromText(buildingtext_dropoff) as polygon, passenger_count as w from nyc_taxi where (buildingtext_dropoff!='')" ) vega1 = vega_choroplethmap( 1900, 1410, bounding_box=[-73.994092, 40.753893, -73.977588, 40.759642], color_gradient=["#0000FF", "#FF0000"], color_bound=[2.5, 5], opacity=1.0, coordinate_system='EPSG:4326') res1 = choroplethmap(vega1, res) save_png(res1, '/tmp/choroplethmap1.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi") print("--- %s seconds ---" % (time.time() - start_time))
def draw_point_map(spark): start_time = time.time() # file 0_5M_nyc_taxi_and_building.csv could be obtained from arctern-turoial warehouse under zilliztech account. The link on github is https://github.com/zilliztech/arctern-tutorial df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) res = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), ST_GeomFromText('POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))'))" ) vega = vega_pointmap( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], point_size=3, point_color="#2DEF4A", opacity=0.5, coordinate_system="EPSG:4326") res = pointmap(vega, res) save_png(res, '/tmp/pointmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi") print("--- %s seconds ---" % (time.time() - start_time))
def test_point_map(): x_data = [] y_data = [] x_data.append(-73.96524) x_data.append(-73.96118) x_data.append(-73.97324) x_data.append(-73.98456) y_data.append(40.73747) y_data.append(40.74507) y_data.append(40.75890) y_data.append(40.77654) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) vega = vega_pointmap( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], point_size=10, point_color="#0000FF", opacity=1.0, coordinate_system="EPSG:4326") curve_z1 = arctern.point_map_layer(vega, points) save_png(curve_z1, "/tmp/test_curve_z1.png")
def draw_point_map(spark): # file 0_5M_nyc_taxi_and_building.csv could be obtained from arctern-turoial warehouse under zilliztech account. The link on github is https://github.com/zilliztech/arctern-tutorial df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.show(20, False) df.createOrReplaceTempView("nyc_taxi") # df.createOrReplaceGlobalTempView("nyc_taxi") res = spark.sql( "select pickup_latitude as x, pickup_longitude as y from nyc_taxi") res.printSchema() res.createOrReplaceTempView("pickup") register_funcs(spark) res = spark.sql( "select ST_Transform(ST_Point(x, y), 'EPSG:4326','EPSG:3857' ) as pickup_point from pickup" ) res.show(20, False) res.createOrReplaceTempView("project") res = spark.sql( "select Projection(pickup_point, 'POINT (4534000 -12510000)', 'POINT (4538000 -12513000)', 1024, 896) as point from project" ) res.show(20, False) vega_point_map = VegaCircle2d(1900, 1410, 3, "#2DEF4A", 0.5) vega = vega_point_map.build() res = pointmap(res, vega) save_png(res, '/tmp/pointmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi")
def draw_heat_map(spark): start_time = time.time() df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) res = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, passenger_count as w from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), ST_GeomFromText('POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))'))" ) res.show() vega = vega_heatmap(1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], 10.0, 'EPSG:4326') res = heatmap(vega, res) save_png(res, '/tmp/heatmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi") print("--- %s seconds ---" % (time.time() - start_time))
def draw_weighted_point_map(spark): start_time = time.time() df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) # single color and single stroke width res1 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), ST_GeomFromText('POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))'))" ) vega1 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], ["#87CEEB"], [0, 2], [5], 1.0, "EPSG:4326") res1 = weighted_pointmap(vega1, res1) save_png(res1, '/tmp/weighted_pointmap_0_0.png') # multiple color and single stroke width res2 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, tip_amount as c from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), ST_GeomFromText('POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))'))" ) vega2 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], ["#0000FF", "#FF0000"], [0, 2], [5], 1.0, "EPSG:4326") res2 = weighted_pointmap(vega2, res2) save_png(res2, '/tmp/weighted_pointmap_1_0.png') # single color and multiple stroke width res3 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, fare_amount as s from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), ST_GeomFromText('POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))'))" ) vega3 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], ["#87CEEB"], [0, 2], [0, 10], 1.0, "EPSG:4326") res3 = weighted_pointmap(vega3, res3) save_png(res3, '/tmp/weighted_pointmap_0_1.png') # multiple color and multiple stroke width res4 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, tip_amount as c, fare_amount as s from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), ST_GeomFromText('POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))'))" ) vega4 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], ["#0000FF", "#FF0000"], [0, 2], [0, 10], 1.0, "EPSG:4326") res4 = weighted_pointmap(vega4, res4) save_png(res4, '/tmp/weighted_pointmap_1_1.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi") print("--- %s seconds ---" % (time.time() - start_time))
def test_choropleth_map(): wkt_data = [] count_data = [] wkt_data.append("POLYGON ((" "200 200, " "200 300, " "300 300, " "300 200, " "200 200))") count_data.append(5.0) arr_wkt = pandas.Series(wkt_data) arr_wkb = arctern.wkt2wkb(arr_wkt) arr_count = pandas.Series(count_data) vega = vega_choroplethmap(1900, 1410, [-73.994092, 40.753893, -73.977588, 40.759642], ["#0000FF", "#FF0000"], [2.5, 5], 1.0, 'EPSG:4326') choropleth_map1 = arctern.choropleth_map(vega, arr_wkb, arr_count) save_png(choropleth_map1, "/tmp/test_choropleth_map1.png")
def test_heat_map(): x_data = [] y_data = [] c_data = [] for i in range(0, 5): x_data.append(i + 50) y_data.append(i + 50) c_data.append(i + 50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) arr_c = pandas.Series(y_data) vega_heat_map = VegaHeatMap(300, 200, 10.0) vega_json = vega_heat_map.build() heat_map = arctern.heat_map(arr_x, arr_y, arr_c, vega_json.encode('utf-8')) save_png(heat_map, "/tmp/test_heat_map.png")
def draw_weighted_point_map(spark): df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load(data_path).cache() df.show(20, False) df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) # single color and single stroke width res1 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), 'POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))')" ) vega1 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], "#87CEEB", [0, 2], [5], 1.0, "EPSG:4326") res1 = weighted_pointmap(res1, vega1) save_png(res1, '/tmp/weighted_pointmap_0_0.png') # multiple color and single stroke width res2 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, tip_amount as c from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), 'POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))')" ) vega2 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], "blue_to_red", [0, 2], [5], 1.0, "EPSG:4326") res2 = weighted_pointmap(res2, vega2) save_png(res2, '/tmp/weighted_pointmap_1_0.png') # single color and multiple stroke width res3 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, fare_amount as s from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), 'POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))')" ) vega3 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], "#87CEEB", [0, 2], [0, 10], 1.0, "EPSG:4326") res3 = weighted_pointmap(res3, vega3) save_png(res3, '/tmp/weighted_pointmap_0_1.png') # multiple color and multiple stroke width res4 = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, tip_amount as c, fare_amount as s from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), 'POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))')" ) vega4 = vega_weighted_pointmap( 1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], "blue_to_red", [0, 2], [0, 10], 1.0, "EPSG:4326") res4 = weighted_pointmap(res4, vega4) save_png(res4, '/tmp/weighted_pointmap_1_1.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi")
def test_heat_map(): x_data = [] y_data = [] c_data = [] for i in range(0, 5): x_data.append(i + 50) y_data.append(i + 50) c_data.append(i + 50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) arr_c = pandas.Series(y_data) vega = vega_heatmap(1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], 10.0, 'EPSG:4326') heat_map1 = arctern.heat_map(vega, points, arr_c) save_png(heat_map1, "/tmp/test_heat_map1.png")
def draw_choropleth_map(spark): df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load("file:///tmp/0_5M_nyc_taxi_and_building.csv").cache() df.createOrReplaceTempView("nyc_taxi") res = spark.sql( "select buildingtext_dropoff as wkt, passenger_count as w from nyc_taxi" ) vega = vega_choroplethmap(1900, 1410, [-73.994092, 40.753893, -73.977588, 40.759642], "blue_to_red", [2.5, 5], 1.0, 'EPSG:4326') res = choroplethmap(res, vega) save_png(res, '/tmp/choroplethmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi")
def test_weighted_point_map(): x_data = [] y_data = [] c_data = [] s_data = [] x_data.append(10) x_data.append(20) x_data.append(30) x_data.append(40) x_data.append(50) y_data.append(10) y_data.append(20) y_data.append(30) y_data.append(40) y_data.append(50) c_data.append(1) c_data.append(2) c_data.append(3) c_data.append(4) c_data.append(5) s_data.append(2) s_data.append(4) s_data.append(6) s_data.append(8) s_data.append(10) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) arr_c = pandas.Series(c_data) arr_s = pandas.Series(s_data) vega1 = vega_weighted_pointmap(300, 200, [-73.998427, 40.730309, -73.954348, 40.780816], ["#87CEEB"], [1, 5], [5], 1.0, "EPSG:3857") res1 = arctern.weighted_point_map(vega1, points) save_png(res1, "/tmp/test_weighted_0_0.png") vega2 = vega_weighted_pointmap(300, 200, [-73.998427, 40.730309, -73.954348, 40.780816], ["#0000FF", "#FF0000"], [1, 5], [5], 1.0, "EPSG:3857") res2 = arctern.weighted_point_map(vega2, points, color_weights=arr_c) save_png(res2, "/tmp/test_weighted_1_0.png") vega3 = vega_weighted_pointmap(300, 200, [-73.998427, 40.730309, -73.954348, 40.780816], ["#87CEEB"], [1, 5], [1, 10], 1.0, "EPSG:3857") res3 = arctern.weighted_point_map(vega3, points, size_weights=arr_s) save_png(res3, "/tmp/test_weighted_0_1.png") vega4 = vega_weighted_pointmap(300, 200, [-73.998427, 40.730309, -73.954348, 40.780816], ["#0000FF", "#FF0000"], [1, 5], [1, 10], 1.0, "EPSG:3857") res4 = arctern.weighted_point_map(vega4, points, color_weights=arr_c, size_weights=arr_s) save_png(res4, "/tmp/test_weighted_1_1.png")
def test_icon_viz(): x_data = [] y_data = [] for i in range(5): x_data.append(i * 100) y_data.append(i * 100) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) import os dir_path = os.path.dirname(os.path.realpath(__file__)) png_path = dir_path + "/../images/taxi.png" vega = vega_icon(800, 600, [-73.998427, 40.730309, -73.954348, 40.780816], png_path, "EPSG:43") icon_buf = arctern.icon_viz(vega, points) save_png(icon_buf, "/tmp/test_icon_viz.png")
def draw_heat_map(spark): df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load(data_path).cache() df.show(20, False) df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) res = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point, passenger_count as w from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), 'POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))')" ) vega = vega_heatmap(1024, 896, 10.0, [-73.998427, 40.730309, -73.954348, 40.780816], 'EPSG:4326') res = heatmap(res, vega) save_png(res, '/tmp/heatmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi")
def test_heat_map(): x_data = [] y_data = [] c_data = [] for i in range(0, 5): x_data.append(i + 50) y_data.append(i + 50) c_data.append(i + 50) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) arr_c = pandas.Series(y_data) vega_heat_map = vega_heatmap( 1024, 896, 10.0, [-73.998427, 40.730309, -73.954348, 40.780816], 'EPSG:4326') vega_json = vega_heat_map.build() heat_map1 = arctern.heat_map(arr_x, arr_y, arr_c, vega_json.encode('utf-8')) save_png(heat_map1, "/tmp/test_heat_map1.png")
def draw_point_map(spark): # file 0_5M_nyc_build.csv is generated from New York taxi data and taxi zone shapefile. Data is available at the following URL: https://www1.nyc.gov/site/tlc/about/tlc-trip-record-data.page df = spark.read.format("csv").option("header", True).option( "delimiter", "," ).schema( "VendorID string, tpep_pickup_datetime timestamp, tpep_dropoff_datetime timestamp, passenger_count long, trip_distance double, pickup_longitude double, pickup_latitude double, dropoff_longitude double, dropoff_latitude double, fare_amount double, tip_amount double, total_amount double, buildingid_pickup long, buildingid_dropoff long, buildingtext_pickup string, buildingtext_dropoff string" ).load(data_path).cache() df.show(20, False) df.createOrReplaceTempView("nyc_taxi") register_funcs(spark) res = spark.sql( "select ST_Point(pickup_longitude, pickup_latitude) as point from nyc_taxi where ST_Within(ST_Point(pickup_longitude, pickup_latitude), 'POLYGON ((-73.998427 40.730309, -73.954348 40.730309, -73.954348 40.780816 ,-73.998427 40.780816, -73.998427 40.730309))')" ) vega = vega_pointmap(1024, 896, [-73.998427, 40.730309, -73.954348, 40.780816], 3, "#2DEF4A", 0.5, "EPSG:4326") res = pointmap(res, vega) save_png(res, '/tmp/pointmap.png') spark.sql("show tables").show() spark.catalog.dropGlobalTempView("nyc_taxi")
def test_choropleth_map(): wkt_data = [] count_data = [] wkt_data.append("POLYGON ((" "-73.98128 40.754771, " "-73.980185 40.754771, " "-73.980185 40.755587, " "-73.98128 40.755587, " "-73.98128 40.754771))") count_data.append(5.0) arr_wkt = pandas.Series(wkt_data) arr_count = pandas.Series(count_data) vega_choropleth_map = VegaChoroplethMap( 1900, 1410, [-73.984092, 40.753893, -73.977588, 40.756342], "blue_to_red", [2.5, 5], 1.0) vega_json = vega_choropleth_map.build() choropleth_map = arctern.choropleth_map(arr_wkt, arr_count, vega_json.encode('utf-8')) save_png(choropleth_map, "/tmp/test_choropleth_map.png")
def test_weighted_point_map(): x_data = [] y_data = [] c_data = [] s_data = [] x_data.append(-73.96524) x_data.append(-73.96118) x_data.append(-73.97324) x_data.append(-73.98456) y_data.append(40.73747) y_data.append(40.74507) y_data.append(40.75890) y_data.append(40.77654) c_data.append(1) c_data.append(2) c_data.append(3) c_data.append(4) s_data.append(4) s_data.append(6) s_data.append(8) s_data.append(10) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) points = arctern.ST_Point(arr_x, arr_y) arr_c = pandas.Series(c_data) arr_s = pandas.Series(s_data) vega1 = vega_weighted_pointmap(1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], color_gradient=["#0000FF"], opacity=1.0, coordinate_system="EPSG:4326") res1 = arctern.weighted_point_map_layer(vega1, points) save_png(res1, "/tmp/test_weighted_0_0.png") vega2 = vega_weighted_pointmap(1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], color_gradient=["#0000FF", "#FF0000"], color_bound=[1, 5], opacity=1.0, coordinate_system="EPSG:4326") res2 = arctern.weighted_point_map_layer(vega2, points, color_weights=arr_c) save_png(res2, "/tmp/test_weighted_1_0.png") vega3 = vega_weighted_pointmap(1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], color_gradient=["#0000FF"], size_bound=[1, 10], opacity=1.0, coordinate_system="EPSG:4326") res3 = arctern.weighted_point_map_layer(vega3, points, size_weights=arr_s) save_png(res3, "/tmp/test_weighted_0_1.png") vega4 = vega_weighted_pointmap(1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], color_gradient=["#0000FF", "#FF0000"], color_bound=[1, 5], size_bound=[1, 10], opacity=1.0, coordinate_system="EPSG:4326") res4 = arctern.weighted_point_map_layer(vega4, points, color_weights=arr_c, size_weights=arr_s) save_png(res4, "/tmp/test_weighted_1_1.png")
def test_fishnet_map(): x_data = [] y_data = [] c_data = [] x_data.append(-73.96524) x_data.append(-73.96118) x_data.append(-73.97324) x_data.append(-73.98456) y_data.append(40.73747) y_data.append(40.74507) y_data.append(40.75890) y_data.append(40.77654) c_data.append(10) c_data.append(20) c_data.append(30) c_data.append(40) arr_x = pandas.Series(x_data) arr_y = pandas.Series(y_data) arr_c = pandas.Series(c_data) points = arctern.ST_Point(arr_x, arr_y) vega = vega_fishnetmap( 1024, 896, bounding_box=[-73.998427, 40.730309, -73.954348, 40.780816], color_gradient=["#0000FF", "#FF0000"], cell_size=4, cell_spacing=1, opacity=1.0, coordinate_system='EPSG:4326') heat_map1 = arctern.fishnet_map_layer(vega, points, arr_c) save_png(heat_map1, "/tmp/test_fishnetmap.png")