Map Any dataset whose catalog metadata declares a point column or a latitude/longitude pair can be drawn, and up to 3 can be overlaid to compare where things happen. Points are queried live from NYC Open Data, capped at 5,000 per dataset.
▶ Why only some datasets appear hereThree kinds of geography, one of them drawable — A dataset can carry point coordinates, region codes like a borough or community board, or a street address. Only the first can be drawn directly — region codes need boundary shapes and addresses need a geocoder, so both are detected and reported but not plotted.
Coverage, honestly — Of 2,396 datasets, 998 carry some geography and 496 are directly mappable. An empty map usually means the dataset is one of the other 1,900, not that nothing happened there.
Three layers, deliberately — A point map is an all-pairs colour problem: any two datasets' markers can end up adjacent. Past three layers the palette stops clearing the colour-blind separation floor, so the limit is a real constraint rather than an arbitrary cap.
Data from NYC Open Data via the Socrata Discovery API. Quality scores are computed from a sample and are indicative, not authoritative.
Map Any dataset whose catalog metadata declares a point column or a latitude/longitude pair can be drawn, and up to 3 can be overlaid to compare where things happen. Points are queried live from NYC Open Data, capped at 5,000 per dataset.
▶ Why only some datasets appear hereThree kinds of geography, one of them drawable — A dataset can carry point coordinates, region codes like a borough or community board, or a street address. Only the first can be drawn directly — region codes need boundary shapes and addresses need a geocoder, so both are detected and reported but not plotted.
Coverage, honestly — Of 2,396 datasets, 998 carry some geography and 496 are directly mappable. An empty map usually means the dataset is one of the other 1,900, not that nothing happened there.
Three layers, deliberately — A point map is an all-pairs colour problem: any two datasets' markers can end up adjacent. Past three layers the palette stops clearing the colour-blind separation floor, so the limit is a real constraint rather than an arbitrary cap.
Shootings (2006-Present) 321 5uug-f49n : Socrata returned 400: {"message":"Query coordinator error: query.soql.type-mismatch; Type mismatch for op$>=, is number; position: Map(row -> 1, column -> 3506, line -> \"SELECT `sampling_location`, `duplicate_sample`, `sample_date`, `sample_time`, `weather_condition_dry_or_wet`, `top_sample_temperature_c`, `bottom_sample_temperature_c`, `site_actual_depth_ft`, `top_sample_depth_ft`, `bottom_sample_depth_ft`, `top_salinity_psu`, `bottom_salinity_psu`, `top_conductivity_s_m`, `bottom_conductivity_s_m`, `ctd_conductivity_temperature_depth_profiler_top_dissolved_oxygen_mg_l`, `ctd_conductivity_temperature_depth_profiler_bottom_dissolved_oxygen_mg_l`, `percentage_o2_saturation_top_sample`, `percentage_o2_saturation_bottom_sample`, `light_trans_transparency_top_sample`, `light_trans_transparency_bottom_sample`, `top_sigma_t_kg_m3`, `bottom_sigma_t_kg_m3`, `top_fluorometer_mg_m3`, `bottom_fluorometer_mg_m3`, `ctd_conductivity_temperature_depth_profiler_ph_top_sample`, `ctd_conductivity_temperature_depth_profiler_ph_bottom_sample`, `top_sample_photosysthetically_active_radiation_reference_400_700nm_light_ue_s`, `top_sample_par_ue_s_m2`, `bottom_sample_par_ue_s_ue_s_m2`, `oxidation_reduction_potential_mv_top_sample`, `oxidation_reduction_potential_mv_bottom_sample`, `current_speed_knot`, `current_direction_current_direction`, `wind_speed_mph`, `wind_direction_wind_direction`, `sea_state`, `winkler_method_top_dissolved_oxygen_mg_l`, `winkler_method_bottom_dissolved_oxygen_mg_l`, `secchi_depth_ft`, `top_ph`, `bottom_ph`, `top_total_coliform_cells_100_ml`, `top_bottom_coliform_cells_100_ml`, `fecal_coliform_top_sample_less_than_or_greater_than_result`, `fecal_coliform_bottom_sample_less_than_or_greater_than_result`, `top_fecal_coliform_bacteria_cells_100ml`, `bottom_fecal_coliform_bacteria_cells_100ml`, `enterococcus_top_sample_less_than_or_greater_than_result`, `enterococcus_bottom_sample_less_than_or_greater_than_result`, `top_enterococci_bacteria_cells_100ml`, `bottom_enterococci_bacteria_cells_100ml`, `top_nitrate_nitrite_mg_l`, `bottom_nitrate_nitrite_mg_l`, `top_ammonium_mg_l`, `bottom_ammonium_mg_l`, `top_ortho_phosphorus_mg_l`, `bottom_ortho_phosphorus_mg_l`, `top_total_kjeldhal_nitrogen_mg_l`, `bottom_total_kjeldhal_nitrogen_mg_l`, `top_silica_mg_l`, `bottom_silica_mg_l`, `total_phosphorus_mg_l`, `bottom_total_phosphorus_mg_l`, `top_total_suspended_solid_mg_l`, `bottom_total_suspended_solid_mg_l`, `top_active_chlorophyll_a_g_l`, `bottom_active_chlorophyll_a_g_l`, `chlorophyll_top_sample_field_u_l_ysi`, `chlorophyll_bottom_sample_field_u_l_ysi`, `top_total_organic_carbon_mg_l`, `top_dissolved_organic_carbon_mg_l`, `bottom_dissolved_organic_carbon_mg_l`, `top_dissolved_oxygen_ysi_mg_l`, `bottom_dissolved_oxygen_ysi_mg_l`, `top_sample_depth_ysi_ft`, `bottom_depth_ysi_ft`, `top_sample_salinity_ysi_psu`, `bottom_sample_salinity_ysi_psu`, `top_sample_temperature_ysi_c`, `bottom_sample_temperature_ysi_c`, `top_bacteria_per_c_c_1909`, `bottom_bacteria_per_c_c_1909`, `top_beam_attenuation_coefficient`, `bottom_beam_attenuation_coefficient`, `top_five_day_biochemical_oxygen_demand_mg_l`, `bottom_five_day_biochemical_oxygen_demand_mg_l`, `top_pcb_plate_count_thous_ml`, `bottom_pcb_plate_count_thous_ml`, `top_coliform_log_no_ml`, `bottom_coliform_log_no_ml`, `oakwood_bod_top_sample_mg_l`, `oakwood_bod_bottom_sample_mg_l`, `oakwood_total_suspended_solid_top_sample_mg_l`, `oakwood_total_suspended_solid_bottom_sample_mg_l`, `top_turbidity_nephelometric_turbidity_units`, `bottom_turbidity_ysi_nephelometric_turbidity_units`, `sampling_comment`, `long`, `lat`, `type` WHERE `lat` IS NOT NULL AND `long` IS NOT NULL AND (`long` >= -74.35) AND (`lat` >= 40.45) AND (`long` <= -73.65) AND (`lat` <= 40.95) LIMIT 5000\\n ^\")","errorCode":"query.soql.type-mismatch","data":{"function":"op$>=","type":"number","dataset":"foxtrot.15678","position":{"row":1,"column":3506,"line":"SELECT `sampling_location`, `duplicate_sample`, `sample_date`, `sample_time`, `weather_condition_dry_or_wet`, `top_sample_temperature_c`, `bottom_sample_temperature_c`, `site_actual_depth_ft`, `top_sample_depth_ft`, `bottom_sample_depth_ft`, `top_salinity_psu`, `bottom_salinity_psu`, `top_conductivity_s_m`, `bottom_conductivity_s_m`, `ctd_conductivity_temperature_depth_profiler_top_dissolved_oxygen_mg_l`, `ctd_conductivity_temperature_depth_profiler_bottom_dissolved_oxygen_mg_l`, `percentage_o2_saturation_top_sample`, `percentage_o2_saturation_bottom_sample`, `light_trans_transparency_top_sample`, `light_trans_transparency_bottom_sample`, `top_sigma_t_kg_m3`, `bottom_sigma_t_kg_m3`, `top_fluorometer_mg_m3`, `bottom_fluorometer_mg_m3`, `ctd_conductivity_temperature_depth_profiler_ph_top_sample`, `ctd_conductivity_temperature_depth_profiler_ph_bottom_sample`, `top_sample_photosysthetically_active_radiation_reference_400_700nm_light_ue_s`, `top_sample_par_ue_s_m2`, `bottom_sample_par_ue_s_ue_s_m2`, `oxidation_reduction_potential_mv_top_sample`, `oxidation_reduction_potential_mv_bottom_sample`, `current_speed_knot`, `current_direction_current_direction`, `wind_speed_mph`, `wind_direction_wind_direction`, `sea_state`, `winkler_method_top_dissolved_oxygen_mg_l`, `winkler_method_bottom_dissolved_oxygen_mg_l`, `secchi_depth_ft`, `top_ph`, `bottom_ph`, `top_total_coliform_cells_100_ml`, `top_bottom_coliform_cells_100_ml`, `fecal_coliform_top_sample_less_than_or_greater_than_result`, `fecal_coliform_bottom_sample_less_than_or_greater_than_result`, `top_fecal_coliform_bacteria_cells_100ml`, `bottom_fecal_coliform_bacteria_cells_100ml`, `enterococcus_top_sample_less_than_or_greater_than_result`, `enterococcus_bottom_sample_less_than_or_greater_than_result`, `top_enterococci_bacteria_cells_100ml`, `bottom_enterococci_bacteria_cells_100ml`, `top_nitrate_nitrite_mg_l`, `bottom_nitrate_nitrite_mg_l`, `top_ammonium_mg_l`, `bottom_ammonium_mg_l`, `top_ortho_phosphorus_mg_l`, `bottom_ortho_phosphorus_mg_l`, `top_total_kjeldhal_nitrogen_mg_l`, `bottom_total_kjeldhal_nitrogen_mg_l`, `top_silica_mg_l`, `bottom_silica_mg_l`, `total_phosphorus_mg_l`, `bottom_total_phosphorus_mg_l`, `top_total_suspended_solid_mg_l`, `bottom_total_suspended_solid_mg_l`, `top_active_chlorophyll_a_g_l`, `bottom_active_chlorophyll_a_g_l`, `chlorophyll_top_sample_field_u_l_ysi`, `chlorophyll_bottom_sample_field_u_l_ysi`, `top_total_organic_carbon_mg_l`, `top_dissolved_organic_carbon_mg_l`, `bottom_dissolved_organic_carbon_mg_l`, `top_dissolved_oxygen_ysi_mg_l`, `bottom_dissolved_oxygen_ysi_mg_l`, `top_sample_depth_ysi_ft`, `bottom_depth_ysi_ft`, `top_sample_salinity_ysi_psu`, `bottom_sample_salinity_ysi_psu`, `top_sample_temperature_ysi_c`, `bottom_sample_temperature_ysi_c`, `top_bacteria_per_c_c_1909`, `bottom_bacteria_per_c_c_1909`, `top_beam_attenuation_coefficient`, `bottom_beam_attenuation_coefficient`, `top_five_day_biochemical_oxygen_demand_mg_l`, `bottom_five_day_biochemical_oxygen_demand_mg_l`, `top_pcb_plate_count_thous_ml`, `bottom_pcb_plate_count_thous_ml`, `top_coliform_log_no_ml`, `bottom_coliform_log_no_ml`, `oakwood_bod_top_sample_mg_l`, `oakwood_bod_bottom_sample_mg_l`, `oakwood_total_suspended_solid_top_sample_mg_l`, `oakwood_total_suspended_solid_bottom_sample_mg_l`, `top_turbidity_nephelometric_turbidity_units`, `bottom_turbidity_ysi_nephelometric_turbidity_units`, `sampling_comment`, `long`, `lat`, `type` WHERE `lat` IS NOT NULL AND `long` IS NOT NULL AND (`long` >= -74.35) AND (`lat` >= 40.45) AND (`long` <= -73.65) AND (`lat` <= 40.95) LIMIT 5000\n ^"}}}3layers is the limit. Beyond that the colours stop being reliably distinguishable for colourblind viewers, and overlapping points on a map can land next to any other layer's.
w9ak-ipjd : Socrata returned 400: {"message":"Query coordinator error: query.soql.type-mismatch; Type mismatch for op$>=, is number; position: Map(row -> 1, column -> 2201, line -> \"SELECT `job_filing_number`, `filing_status`, `house_no`, `street_name`, `borough`, `block`, `lot`, `bin`, `commmunity_board`, `work_on_floor`, `apt_condo_no_s`, `applicant_professional_title`, `applicant_license`, `applicant_first_name`, `applicants_middle_initial`, `applicant_last_name`, `owner_s_business_name`, `applicant_street_name`, `city`, `state`, `zip`, `filing_representative_first_name`, `filing_representative_middle_initial`, `filing_representative_last_name`, `filing_representative_business_name`, `filing_representative_street_name`, `filing_representative_city`, `filing_representative_state`, `filing_representative_zip`, `sprinkler_work_type`, `plumbing_work_type`, `standpipe`, `antenna`, `sign`, `curb_cut`, `fence`, `scaffold`, `shed`, `initial_cost`, `total_construction_floor_area`, `review_building_code`, `little_e`, `unmapped_cco_street`, `request_legalization`, `includes_permanent_removal`, `in_compliance_with_nycecc`, `exempt_from_nycecc`, `building_type`, `existing_stories`, `existing_height`, `existing_dwelling_units`, `proposed_no_of_stories`, `proposed_height`, `proposed_dwelling_units`, `specialinspectionrequirement`, `special_inspection_agency_number`, `progressinspectionrequirement`, `built_1_information_value`, `built_2_information_value`, `built_2_a_information_value`, `built_2_b_information_value`, `filing_date`, `current_status_date`, `first_permit_date`, `boiler_equipment_work_type_`, `earth_work_work_type_`, `foundation_work_type_`, `general_construction_work_type_`, `mechanical_systems_work_type_`, `place_of_assembly_work_type_`, `protection_mechanical_methods_work_type_`, `sidewalk_shed_work_type_`, `structural_work_type_`, `support_of_excavation_work_type_`, `temporary_place_of_assembly_work_type_`, `green_roof_work_type_`, `solar_work_type_`, `full_demolition_work_type_`, `suspended_scaffold_work_type_`, `job_type`, `latitude`, `longitude`, `postcode`, `council_district`, `census_tract`, `bbl`, `nta`, `approved_date`, `signoff_date`, `applicant_business_name`, `owner_first_name`, `owner_last_name`, `owner_type`, `job_description`, `filing_review_type` WHERE `latitude` IS NOT NULL AND `longitude` IS NOT NULL AND (`longitude` >= -74.35) AND (`latitude` >= 40.45) AND (`longitude` <= -73.65) AND (`latitude` <= 40.95) LIMIT 5000\\n ^\")","errorCode":"query.soql.type-mismatch","data":{"function":"op$>=","type":"number","dataset":"foxtrot.49485","position":{"row":1,"column":2201,"line":"SELECT `job_filing_number`, `filing_status`, `house_no`, `street_name`, `borough`, `block`, `lot`, `bin`, `commmunity_board`, `work_on_floor`, `apt_condo_no_s`, `applicant_professional_title`, `applicant_license`, `applicant_first_name`, `applicants_middle_initial`, `applicant_last_name`, `owner_s_business_name`, `applicant_street_name`, `city`, `state`, `zip`, `filing_representative_first_name`, `filing_representative_middle_initial`, `filing_representative_last_name`, `filing_representative_business_name`, `filing_representative_street_name`, `filing_representative_city`, `filing_representative_state`, `filing_representative_zip`, `sprinkler_work_type`, `plumbing_work_type`, `standpipe`, `antenna`, `sign`, `curb_cut`, `fence`, `scaffold`, `shed`, `initial_cost`, `total_construction_floor_area`, `review_building_code`, `little_e`, `unmapped_cco_street`, `request_legalization`, `includes_permanent_removal`, `in_compliance_with_nycecc`, `exempt_from_nycecc`, `building_type`, `existing_stories`, `existing_height`, `existing_dwelling_units`, `proposed_no_of_stories`, `proposed_height`, `proposed_dwelling_units`, `specialinspectionrequirement`, `special_inspection_agency_number`, `progressinspectionrequirement`, `built_1_information_value`, `built_2_information_value`, `built_2_a_information_value`, `built_2_b_information_value`, `filing_date`, `current_status_date`, `first_permit_date`, `boiler_equipment_work_type_`, `earth_work_work_type_`, `foundation_work_type_`, `general_construction_work_type_`, `mechanical_systems_work_type_`, `place_of_assembly_work_type_`, `protection_mechanical_methods_work_type_`, `sidewalk_shed_work_type_`, `structural_work_type_`, `support_of_excavation_work_type_`, `temporary_place_of_assembly_work_type_`, `green_roof_work_type_`, `solar_work_type_`, `full_demolition_work_type_`, `suspended_scaffold_work_type_`, `job_type`, `latitude`, `longitude`, `postcode`, `council_district`, `census_tract`, `bbl`, `nta`, `approved_date`, `signoff_date`, `applicant_business_name`, `owner_first_name`, `owner_last_name`, `owner_type`, `job_description`, `filing_review_type` WHERE `latitude` IS NOT NULL AND `longitude` IS NOT NULL AND (`longitude` >= -74.35) AND (`latitude` >= 40.45) AND (`longitude` <= -73.65) AND (`latitude` <= 40.95) LIMIT 5000\n ^"}}}