Skip to content

Instantly share code, notes, and snippets.

@glimpsedchaos
Last active May 29, 2020 04:40
Show Gist options
  • Save glimpsedchaos/49f91ed95dbf348b85256e5f9eb43ec0 to your computer and use it in GitHub Desktop.
Save glimpsedchaos/49f91ed95dbf348b85256e5f9eb43ec0 to your computer and use it in GitHub Desktop.
fresh block
license: mit
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<meta name="description" content="">
<title></title>
</head>
<style>
body {
margin: 0px;
overflow: hidden;
}
.states-g {
fill: rgb(38, 50, 56);
stroke: white;
stroke-linejoin: round;
stroke-width: 0.5;
}
.states-g:hover {
fill: rgb(255,167,61);
}
</style
<body>
<div id="map">
</div>
<script src="https://d3js.org/d3.v5.min.js"></script>
<script src="https://d3js.org/topojson.v2.min.js"></script>
<script>
const svg = d3.select('#map')
.append("svg")
.attr("width", 960)
.attr("height", 500);
const projection = d3.geoAlbersUsa().scale(1000)
const pathGenerator = d3.geoPath().projection(projection);
const g = svg.append('g');
Promise.all([
d3.json('us2016.topo.json')
]).then(([topoJSONdata]) => {
const stateMap = topojson.feature(topoJSONdata,topoJSONdata.objects.states);
g.selectAll('path').data(stateMap.features)
.enter().append('path')
.attr('class','states-g')
.attr('d', pathGenerator);
});
//Add source and target points to the map
target = [-84.5428, 39.3312]
svg.selectAll("target")
.data([target]).enter()
.append("circle")
.attr("cx", function (d) { return projection(d)[0]; })
.attr("cy", function (d) { return projection(d)[1]; })
.attr("r", "16px")
.attr("fill", "rgba(33, 150, 243, 0.5)")
svg.selectAll("target")
.data([target]).enter()
.append("circle")
.attr("cx", function (d) { return projection(d)[0]; })
.attr("cy", function (d) { return projection(d)[1]; })
.attr("r", "8px")
.attr("fill", "rgba(33, 150, 243, 1.0)")
const svgpoints = d3.select('svg');
const svgpaths = d3.select('svg');
// Promise.all([
// d3.json('input.json')]).then(([data]) => {
//"status_text": "OK: 0,Passed,20200528103301,West US,,Washington",
// });
d3.json("state-coordinates.json").then(function(state_xy) {
var data = ["OK: 0,Passed,20200528141302,West US,,Washington", "OK: 0,Passed,20200528141319,East US,Washington,Virginia", "OK: 0,Passed,20200528141600,Central US,Des Moines,Iowa", "OK: 0,Passed,20200528141344,South Central US,San Antonio,Texas", "OK: 0,Passed,20200528141235,North Central US,Chicago,Illinois"];
data.forEach(getSources);
function getSources(item, index) {
var source_details = item.split(",");
var status = source_details[1];
var timestamp = source_details[2];
var region = source_details[3];
var city = source_details[4];
var state = source_details[5];
var loc_coordinates = getCoordinates(state);
// add circles to svg
svgpoints.selectAll("source")
.data([loc_coordinates])
.enter()
.append("circle")
.attr("cx", function (d) { return projection(d)[0]; })
.attr("cy", function (d) { return projection(d)[1]; })
.attr("r", "30px")
.attr("fill", function (d) {
if (status == "Unknown") {
return "black";
}
//Critical
if (status == "Critical") {
return "#f44336";
}
//Warning
if (status == "Warning") {
return "#FFEB3B";
}
//Normal
if (status == "Passed") {
return "rgba(76, 175, 80, 0.5)";
}else {
return "black";
}
});
svgpoints.selectAll("source")
.data([loc_coordinates])
.enter()
.append("circle")
.attr("cx", function (d) { return projection(d)[0]; })
.attr("cy", function (d) { return projection(d)[1]; })
.attr("r", "8px")
.attr("fill", function (d) {
if (status == "Unknown") {
return "black";
}
//Critical
if (status == "Critical") {
return "#f44336";
}
//Warning
if (status == "Warning") {
return "#FFEB3B";
}
//Normal
if (status == "Passed") {
return "#4CAF50";
}else {
return "black";
}
})
// add lines from source to destination
svgpaths.selectAll("path")
.data([loc_coordinates])
.enter()
.append("line")
.attr("x1", function (d) { return projection(loc_coordinates)[0];})
.attr("y1", function (d) { return projection(loc_coordinates)[1];})
.attr("x2", function (d) { return projection(target)[0];})
.attr("y2", function (d) { return projection(target)[1];})
.attr("stroke-width", 1.5)
.attr("stroke", function (d) {
if (status == "Unknown") {
return "black";
}
//Critical
if (status == "Critical") {
return "#f44336";
}
//Warning
if (status == "Warning") {
return "#FFEB3B";
}
//Normal
if (status == "Passed") {
return "#4CAF50";
}else {
return "black";
}
});
}
function getCoordinates(state,index){
var loc_coordinates= [];
for(var i = 0; i < state_xy.length; i++)
{
if(state_xy[i].state == state)
{
loc_coordinates.push(state_xy[i].longitude);
loc_coordinates.push(state_xy[i].latitude);
}
}
return loc_coordinates;
}
});
</script>
</body>
{
"recordcount": "5",
"servicestatus": [
{
"@attributes": {
"id": "178964019"
},
"instance_id": "1",
"service_id": "127491",
"host_id": "5708",
"host_name": "SABUDTRHQPCF001.xxxxxxxx.COM",
"host_alias": "xx.xxx.xx.xxx",
"name": "xxxxxxxx status from West US",
"host_display_name": {
},
"host_address": "xx.xxx.xx.xxx",
"display_name": "xxxxxxxx status from West US",
"status_update_time": "2020-05-28 10:35:18",
"status_text": "OK: 0,Passed,20200528103301,West US,,Washington",
"status_text_long": {
},
"current_state": "0",
"performance_data": "&apos;xxxxxxxx&apos;=0;1;2;",
"should_be_scheduled": "0",
"check_type": "1",
"last_state_change": "2020-05-28 08:48:15",
"last_hard_state_change": "2020-05-28 08:48:15",
"last_hard_state": "0",
"last_time_ok": "2020-05-28 10:35:15",
"last_time_warning": "2020-05-27 14:01:22",
"last_time_critical": "1969-12-31 19:00:00",
"last_time_unknown": "2020-05-28 08:48:15",
"last_notification": "1969-12-31 19:00:00",
"next_notification": "1969-12-31 19:00:00",
"no_more_notifications": "0",
"acknowledgement_type": "0",
"current_notification_number": "0",
"process_performance_data": "1",
"obsess_over_service": "1",
"event_handler_enabled": "1",
"modified_service_attributes": "0",
"event_handler": {
},
"check_command": "check_dummy!0!&quot;No data received yet.&quot;",
"normal_check_interval": "1",
"retry_check_interval": "1",
"check_timeperiod_id": "131",
"icon_image": {
},
"icon_image_alt": {
},
"has_been_checked": "1",
"current_check_attempt": "1",
"max_check_attempts": "1",
"last_check": "2020-05-28 10:35:15",
"next_check": "1969-12-31 19:00:00",
"state_type": "1",
"notifications_enabled": "0",
"problem_acknowledged": "0",
"flap_detection_enabled": "0",
"is_flapping": "0",
"percent_state_change": "0",
"latency": "0",
"execution_time": "0",
"scheduled_downtime_depth": "0",
"passive_checks_enabled": "1",
"active_checks_enabled": "0",
"notes": {
},
"notes_url": {
},
"action_url": {
}
},
{
"@attributes": {
"id": "178964016"
},
"instance_id": "1",
"service_id": "127492",
"host_id": "5708",
"host_name": "SABUDTRHQPCF001.xxxxxxxx.COM",
"host_alias": "xx.xxx.xx.xxx",
"name": "xxxxxxxx status from East US",
"host_display_name": {
},
"host_address": "xx.xxx.xx.xxx",
"display_name": "xxxxxxxx status from East US",
"status_update_time": "2020-05-28 10:35:18",
"status_text": "OK: 0,Passed,20200528103318,East US,Washington,Virginia",
"status_text_long": {
},
"current_state": "0",
"performance_data": "&apos;xxxxxxxx&apos;=0;1;2;",
"should_be_scheduled": "0",
"check_type": "1",
"last_state_change": "2020-05-28 08:48:15",
"last_hard_state_change": "2020-05-28 08:48:15",
"last_hard_state": "0",
"last_time_ok": "2020-05-28 10:35:15",
"last_time_warning": "2020-05-27 14:01:22",
"last_time_critical": "1969-12-31 19:00:00",
"last_time_unknown": "2020-05-28 08:48:15",
"last_notification": "1969-12-31 19:00:00",
"next_notification": "1969-12-31 19:00:00",
"no_more_notifications": "0",
"acknowledgement_type": "0",
"current_notification_number": "0",
"process_performance_data": "1",
"obsess_over_service": "1",
"event_handler_enabled": "1",
"modified_service_attributes": "0",
"event_handler": {
},
"check_command": "check_dummy!0!&quot;No data received yet.&quot;",
"normal_check_interval": "1",
"retry_check_interval": "1",
"check_timeperiod_id": "131",
"icon_image": {
},
"icon_image_alt": {
},
"has_been_checked": "1",
"current_check_attempt": "1",
"max_check_attempts": "1",
"last_check": "2020-05-28 10:35:15",
"next_check": "1969-12-31 19:00:00",
"state_type": "1",
"notifications_enabled": "0",
"problem_acknowledged": "0",
"flap_detection_enabled": "0",
"is_flapping": "0",
"percent_state_change": "0",
"latency": "0",
"execution_time": "0",
"scheduled_downtime_depth": "0",
"passive_checks_enabled": "1",
"active_checks_enabled": "0",
"notes": {
},
"notes_url": {
},
"action_url": {
}
},
{
"@attributes": {
"id": "178964015"
},
"instance_id": "1",
"service_id": "127493",
"host_id": "5708",
"host_name": "SABUDTRHQPCF001.xxxxxxxx.COM",
"host_alias": "xx.xxx.xx.xxx",
"name": "xxxxxxxx status from Central US",
"host_display_name": {
},
"host_address": "xx.xxx.xx.xxx",
"display_name": "xxxxxxxx status from Central US",
"status_update_time": "2020-05-28 10:35:18",
"status_text": "Exception: One or more errors occurred.",
"status_text_long": {
},
"current_state": "3",
"performance_data": {
},
"should_be_scheduled": "0",
"check_type": "1",
"last_state_change": "2020-05-28 10:35:15",
"last_hard_state_change": "2020-05-28 10:35:15",
"last_hard_state": "3",
"last_time_ok": "2020-05-28 10:35:15",
"last_time_warning": "2020-05-27 13:32:00",
"last_time_critical": "1969-12-31 19:00:00",
"last_time_unknown": "2020-05-28 08:48:15",
"last_notification": "1969-12-31 19:00:00",
"next_notification": "1969-12-31 19:00:00",
"no_more_notifications": "0",
"acknowledgement_type": "0",
"current_notification_number": "0",
"process_performance_data": "1",
"obsess_over_service": "1",
"event_handler_enabled": "1",
"modified_service_attributes": "0",
"event_handler": {
},
"check_command": "check_dummy!0!&quot;No data received yet.&quot;",
"normal_check_interval": "1",
"retry_check_interval": "1",
"check_timeperiod_id": "131",
"icon_image": {
},
"icon_image_alt": {
},
"has_been_checked": "1",
"current_check_attempt": "1",
"max_check_attempts": "1",
"last_check": "2020-05-28 10:35:15",
"next_check": "1969-12-31 19:00:00",
"state_type": "1",
"notifications_enabled": "0",
"problem_acknowledged": "0",
"flap_detection_enabled": "0",
"is_flapping": "0",
"percent_state_change": "6.25",
"latency": "0",
"execution_time": "0",
"scheduled_downtime_depth": "0",
"passive_checks_enabled": "1",
"active_checks_enabled": "0",
"notes": {
},
"notes_url": {
},
"action_url": {
}
},
{
"@attributes": {
"id": "178964018"
},
"instance_id": "1",
"service_id": "127494",
"host_id": "5708",
"host_name": "SABUDTRHQPCF001.xxxxxxxx.COM",
"host_alias": "xx.xxx.xx.xxx",
"name": "xxxxxxxx status from South Central US",
"host_display_name": {
},
"host_address": "xx.xxx.xx.xxx",
"display_name": "xxxxxxxx status from South Central US",
"status_update_time": "2020-05-28 10:35:18",
"status_text": "Exception: One or more errors occurred.",
"status_text_long": {
},
"current_state": "3",
"performance_data": {
},
"should_be_scheduled": "0",
"check_type": "1",
"last_state_change": "2020-05-28 10:35:15",
"last_hard_state_change": "2020-05-28 10:35:15",
"last_hard_state": "3",
"last_time_ok": "2020-05-28 10:35:15",
"last_time_warning": "2020-05-27 13:46:39",
"last_time_critical": "1969-12-31 19:00:00",
"last_time_unknown": "2020-05-28 08:20:01",
"last_notification": "1969-12-31 19:00:00",
"next_notification": "1969-12-31 19:00:00",
"no_more_notifications": "0",
"acknowledgement_type": "0",
"current_notification_number": "0",
"process_performance_data": "1",
"obsess_over_service": "1",
"event_handler_enabled": "1",
"modified_service_attributes": "0",
"event_handler": {
},
"check_command": "check_dummy!0!&quot;No data received yet.&quot;",
"normal_check_interval": "1",
"retry_check_interval": "1",
"check_timeperiod_id": "131",
"icon_image": {
},
"icon_image_alt": {
},
"has_been_checked": "1",
"current_check_attempt": "1",
"max_check_attempts": "1",
"last_check": "2020-05-28 10:35:15",
"next_check": "1969-12-31 19:00:00",
"state_type": "1",
"notifications_enabled": "0",
"problem_acknowledged": "0",
"flap_detection_enabled": "0",
"is_flapping": "0",
"percent_state_change": "6.25",
"latency": "0",
"execution_time": "0",
"scheduled_downtime_depth": "0",
"passive_checks_enabled": "1",
"active_checks_enabled": "0",
"notes": {
},
"notes_url": {
},
"action_url": {
}
},
{
"@attributes": {
"id": "178964017"
},
"instance_id": "1",
"service_id": "127495",
"host_id": "5708",
"host_name": "SABUDTRHQPCF001.xxxxxxxx.COM",
"host_alias": "xx.xxx.xx.xxx",
"name": "xxxxxxxx status from North Central US",
"host_display_name": {
},
"host_address": "xx.xxx.xx.xxx",
"display_name": "xxxxxxxx status from North Central US",
"status_update_time": "2020-05-28 10:35:18",
"status_text": "Exception: One or more errors occurred.",
"status_text_long": {
},
"current_state": "3",
"performance_data": {
},
"should_be_scheduled": "0",
"check_type": "1",
"last_state_change": "2020-05-28 10:35:15",
"last_hard_state_change": "2020-05-28 10:35:15",
"last_hard_state": "3",
"last_time_ok": "2020-05-28 10:35:15",
"last_time_warning": "2020-05-27 13:46:39",
"last_time_critical": "1969-12-31 19:00:00",
"last_time_unknown": "2020-05-28 08:44:10",
"last_notification": "1969-12-31 19:00:00",
"next_notification": "1969-12-31 19:00:00",
"no_more_notifications": "0",
"acknowledgement_type": "0",
"current_notification_number": "0",
"process_performance_data": "1",
"obsess_over_service": "1",
"event_handler_enabled": "1",
"modified_service_attributes": "0",
"event_handler": {
},
"check_command": "check_dummy!0!&quot;No data received yet.&quot;",
"normal_check_interval": "1",
"retry_check_interval": "1",
"check_timeperiod_id": "131",
"icon_image": {
},
"icon_image_alt": {
},
"has_been_checked": "1",
"current_check_attempt": "1",
"max_check_attempts": "1",
"last_check": "2020-05-28 10:35:15",
"next_check": "1969-12-31 19:00:00",
"state_type": "1",
"notifications_enabled": "0",
"problem_acknowledged": "0",
"flap_detection_enabled": "0",
"is_flapping": "0",
"percent_state_change": "6.25",
"latency": "0",
"execution_time": "0",
"scheduled_downtime_depth": "0",
"passive_checks_enabled": "1",
"active_checks_enabled": "0",
"notes": {
},
"notes_url": {
},
"action_url": {
}
}
]
}
[
{
"state":"Alaska",
"latitude":61.3850,
"longitude":-152.2683
},
{
"state":"Alabama",
"latitude":32.7990,
"longitude":-86.8073
},
{
"state":"Arkansas",
"latitude":34.9513,
"longitude":-92.3809
},
{
"state":"Arizona",
"latitude":33.7712,
"longitude":-111.3877
},
{
"state":"California",
"latitude":36.1700,
"longitude":-119.7462
},
{
"state":"Colorado",
"latitude":39.0646,
"longitude":-105.3272
},
{
"state":"Connecticut",
"latitude":41.5834,
"longitude":-72.7622
},
{
"state":"Delaware",
"latitude":39.3498,
"longitude":-75.5148
},
{
"state":"Florida",
"latitude":27.8333,
"longitude":-81.7170
},
{
"state":"Georgia",
"latitude":32.9866,
"longitude":-83.6487
},
{
"state":"Hawaii",
"latitude":21.1098,
"longitude":-157.5311
},
{
"state":"Iowa",
"latitude":42.0046,
"longitude":-93.2140
},
{
"state":"Idaho",
"latitude":44.2394,
"longitude":-114.5103
},
{
"state":"Illinois",
"latitude":40.3363,
"longitude":-89.0022
},
{
"state":"Indiana",
"latitude":39.8647,
"longitude":-86.2604
},
{
"state":"Kansas",
"latitude":38.5111,
"longitude":-96.8005
},
{
"state":"Kentucky",
"latitude":37.6690,
"longitude":-84.6514
},
{
"state":"Louisiana",
"latitude":31.1801,
"longitude":-91.8749
},
{
"state":"Massachusetts",
"latitude":42.2373,
"longitude":-71.5314
},
{
"state":"Maryland",
"latitude":39.0724,
"longitude":-76.7902
},
{
"state":"Maine",
"latitude":44.6074,
"longitude":-69.3977
},
{
"state":"Michigan",
"latitude":43.3504,
"longitude":-84.5603
},
{
"state":"Minnesota",
"latitude":45.7326,
"longitude":-93.9196
},
{
"state":"Missouri",
"latitude":38.4623,
"longitude":-92.3020
},
{
"state":"Mississippi",
"latitude":32.7673,
"longitude":-89.6812
},
{
"state":"Montana",
"latitude":46.9048,
"longitude":-110.3261
},
{
"state":"North Carolina",
"latitude":35.6411,
"longitude":-79.8431
},
{
"state":"North Dakota",
"latitude":47.5362,
"longitude":-99.7930
},
{
"state":"Nebraska",
"latitude":41.1289,
"longitude":-98.2883
},
{
"state":"New Hampshire",
"latitude":43.4108,
"longitude":-71.5653
},
{
"state":"New Jersey",
"latitude":40.3140,
"longitude":-74.5089
},
{
"state":"New Mexico",
"latitude":34.8375,
"longitude":-106.2371
},
{
"state":"Nevada",
"latitude":38.4199,
"longitude":-117.1219
},
{
"state":"New York",
"latitude":42.1497,
"longitude":-74.9384
},
{
"state":"Ohio",
"latitude":40.3736,
"longitude":-82.7755
},
{
"state":"Oklahoma",
"latitude":35.5376,
"longitude":-96.9247
},
{
"state":"Oregon",
"latitude":44.5672,
"longitude":-122.1269
},
{
"state":"Pennsylvania",
"latitude":40.5773,
"longitude":-77.2640
},
{
"state":"Rhode Island",
"latitude":41.6772,
"longitude":-71.5101
},
{
"state":"South Carolina",
"latitude":33.8191,
"longitude":-80.9066
},
{
"state":"South Dakota",
"latitude":44.2853,
"longitude":-99.4632
},
{
"state":"Tennessee",
"latitude":35.7449,
"longitude":-86.7489
},
{
"state":"Texas",
"latitude":31.1060,
"longitude":-97.6475
},
{
"state":"Utah",
"latitude":40.1135,
"longitude":-111.8535
},
{
"state":"Virginia",
"latitude":37.7680,
"longitude":-78.2057
},
{
"state":"Vermont",
"latitude":44.0407,
"longitude":-72.7093
},
{
"state":"Washington",
"latitude":47.3917,
"longitude":-121.5708
},
{
"state":"Wisconsin",
"latitude":44.2563,
"longitude":-89.6385
},
{
"state":"West Virginia",
"latitude":38.4680,
"longitude":-80.9696
},
{
"state":"Wyoming",
"latitude":42.7475,
"longitude":-107.2085
}
]
[
{
"fips": "01",
"name": "Alabama",
"abbrv": "AL"
},
{
"fips": "02",
"name": "Alaska",
"abbrv": "AK"
},
{
"fips": "04",
"name": "Arizona",
"abbrv": "AZ"
},
{
"fips": "05",
"name": "Arkansas",
"abbrv": "AR"
},
{
"fips": "06",
"name": "California",
"abbrv": "CA"
},
{
"fips": "08",
"name": "Colorado",
"abbrv": "CO"
},
{
"fips": "09",
"name": "Connecticut",
"abbrv": "CT"
},
{
"fips": "10",
"name": "Delaware",
"abbrv": "DE"
},
{
"fips": "11",
"name": "District of Columbia",
"abbrv": "DC"
},
{
"fips": "12",
"name": "Florida",
"abbrv": "FL"
},
{
"fips": "13",
"name": "Georgia",
"abbrv": "GA"
},
{
"fips": "15",
"name": "Hawaii",
"abbrv": "HI"
},
{
"fips": "16",
"name": "Idaho",
"abbrv": "ID"
},
{
"fips": "17",
"name": "Illinois",
"abbrv": "IL"
},
{
"fips": "18",
"name": "Indiana",
"abbrv": "IN"
},
{
"fips": "19",
"name": "Iowa",
"abbrv": "IA"
},
{
"fips": "20",
"name": "Kansas",
"abbrv": "KS"
},
{
"fips": "21",
"name": "Kentucky",
"abbrv": "KY"
},
{
"fips": "22",
"name": "Louisiana",
"abbrv": "LA"
},
{
"fips": "23",
"name": "Maine",
"abbrv": "ME"
},
{
"fips": "24",
"name": "Maryland",
"abbrv": "MD"
},
{
"fips": "25",
"name": "Massachusetts",
"abbrv": "MA"
},
{
"fips": "26",
"name": "Michigan",
"abbrv": "MI"
},
{
"fips": "27",
"name": "Minnesota",
"abbrv": "MN"
},
{
"fips": "28",
"name": "Mississippi",
"abbrv": "MS"
},
{
"fips": "29",
"name": "Missouri",
"abbrv": "MO"
},
{
"fips": "30",
"name": "Montana",
"abbrv": "MT"
},
{
"fips": "31",
"name": "Nebraska",
"abbrv": "NE"
},
{
"fips": "32",
"name": "Nevada",
"abbrv": "NV"
},
{
"fips": "33",
"name": "New Hampshire",
"abbrv": "NH"
},
{
"fips": "34",
"name": "New Jersey",
"abbrv": "NJ"
},
{
"fips": "35",
"name": "New Mexico",
"abbrv": "NM"
},
{
"fips": "36",
"name": "New York",
"abbrv": "NY"
},
{
"fips": "37",
"name": "North Carolina",
"abbrv": "NC"
},
{
"fips": "38",
"name": "North Dakota",
"abbrv": "ND"
},
{
"fips": "39",
"name": "Ohio",
"abbrv": "OH"
},
{
"fips": "40",
"name": "Oklahoma",
"abbrv": "OK"
},
{
"fips": "41",
"name": "Oregon",
"abbrv": "OR"
},
{
"fips": "42",
"name": "Pennsylvania",
"abbrv": "PA"
},
{
"fips": "72",
"name": "Puerto Rico",
"abbrv": "PR"
},
{
"fips": "44",
"name": "Rhode Island",
"abbrv": "RI"
},
{
"fips": "45",
"name": "South Carolina",
"abbrv": "SC"
},
{
"fips": "46",
"name": "South Dakota",
"abbrv": "SD"
},
{
"fips": "47",
"name": "Tennessee",
"abbrv": "TN"
},
{
"fips": "48",
"name": "Texas",
"abbrv": "TX"
},
{
"fips": "49",
"name": "Utah",
"abbrv": "UT"
},
{
"fips": "50",
"name": "Vermont",
"abbrv": "VT"
},
{
"fips": "51",
"name": "Virginia",
"abbrv": "VA"
},
{
"fips": "78",
"name": "Virgin Islands of the U.S.",
"abbrv": "VI"
},
{
"fips": "53",
"name": "Washington",
"abbrv": "WA"
},
{
"fips": "54",
"name": "West Virginia",
"abbrv": "WV"
},
{
"fips": "55",
"name": "Wisconsin",
"abbrv": "WI"
},
{
"fips": "56",
"name": "Wyoming",
"abbrv": "WY"
}
]
Display the source blob
Display the rendered blob
Raw
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment