Skip to content

Instantly share code, notes, and snippets.

@HenryW95
Last active July 5, 2017 23:50
Show Gist options
  • Save HenryW95/0d078655c6925517a11d73a0aebe6be3 to your computer and use it in GitHub Desktop.
Save HenryW95/0d078655c6925517a11d73a0aebe6be3 to your computer and use it in GitHub Desktop.
skysat-coverage-map
license: mit
target images lat lon admin1 admin2
Paterson_WA 298 46.009901 -119.638 Paterson WA
Gothenburg_NE 294 40.977572 -100.179454 Gothenburg NE
Castle_Cliffs_NZ 262 -41.579257 174.127469 Castle Cliffs NZ
Blaine_MT 218 48.43279914 -108.9586473 Blaine MT
Newberg_OR 192 45.349558 -123.009384 Newberg OR
Knobview_MO 172 38.040471 -91.490501 Knobview MO
Albany_GA 154 31.640734 -84.315048 Albany GA
Clark_SD 110 44.858178 -97.729555 Clark SD
Angaston_Australia 96 -34.480958 138.9905 Angaston Australia
Wilyabrup_Australia 96 -33.787078 115.033422 Wilyabrup Australia
Tabuk_Saudi Arabia 94 30.070187 38.307049 Tabuk Saudi Arabia
Battleford_Canada 92 52.632217 -108.6169 Battleford Canada
McHenry_ND 84 48.234577 -100.636319 McHenry ND
PampasRancho_Mexico_UNKNOWNLOCATION 80 PampasRancho Mexico UNKNOWNLOCATION
Concordia_LA 79 31.445774 -91.639764 Concordia LA
Hardin_KY 78 37.697884 -85.963441 Hardin KY
Logan_OH 78 40.388473 -83.765777 Logan OH
Mepiche_Mozambique 76 -13.315898 38.665981 Mepiche Mozambique
Kamsack_Saskatchewan 68 51.490974 -101.947149 Kamsack Saskatchewan
Barnes_ND 62 46.936128 -98.071586 Barnes ND
Lethbridge_Canada 52 49.531498 -113.131812 Lethbridge Canada
Carroll_MO 49 39.426812 -93.505061 Carroll MO
Merrick_NE 39 41.2544 -98.2213 Merrick NE
Nagaoka_Japan 39 37.5287 138.8252 Nagaoka Japan
Yellow_Medicine_MN 38 44.7162 -95.868367 Yellow Medicine MN
San_Luis_Obispo_CA 37 35.291967 -120.66284 San Luis Obispo CA
Tehama_CA 26 40.026097 -122.123338 Tehama CA
Suwannee_County_FL 24 30.176728 -83.197977 Suwannee County FL
Runnels_County_TX 18 31.83109683 -99.97618039 Runnels County TX
Burdette_Alberta 15 49.723051 -111.506373 Burdette Alberta
Robinvale_Australia 14 -34.588257 142.777304 Robinvale Australia
NZ_Wine_UNKNOWNLOCATION 10 NZ Wine UNKNOWNLOCATION
Myrtleford_Australia 8 -36.557401 146.724114 Myrtleford Australia
Peru_Swathe_UNKNOWNLOCATION 7 Peru Swathe UNKNOWNLOCATION
Yakima_WA 7 46.282615 -119.83534 Yakima WA
Mendota_CA 6 36.845836 -120.220975 Mendota CA
Wheat_MT_UNKNOWNLOCATION 6 Wheat MT UNKNOWNLOCATION
Yuma_CO 5 40.3056 -102.5382 Yuma CO
Hector_ AR 4 35.831529 -89.976437 Hector AR
Mildura_Australia 4 -34.298784 142.124781 Mildura Australia
Tarneit_Australia 4 -37.81021 144.667375 Tarneit Australia
Yakima_WA 4 46.282615 -119.83534 Yakima WA
Runnels_TX 4 31.83109683 -99.97618039 Runnels TX
Tehama_CA 3 39.954167 -122.265694 Tehama CA
Kamsack_Canada 3 49.531498 -113.131812 Kamsack Canada
Moorabool_Australia 3 -37.620387 144.221511 Moorabool Australia
Vineyards_San Luis Obispo 3 35.231205 -120.606299 Vineyards San Luis Obispo
Corn_NE_UNKNOWNLOCATION 2 Corn NE UNKNOWNLOCATION
Corn_Saudi_Arabia_UNKNOWNLOCATION 2 Corn Saudi Arabia UNKNOWNLOCATION
Dimbulah_Australia 2 -17.166811 145.084536 Dimbulah Australia
Lindsay_Pt_Australia 134 -34.073954 140.997769 Lindsay Pt Australia
Corn_CO_UNKNOWNLOCATION 1 Corn CO UNKNOWNLOCATION
Mareeba_Australia 1 -17.02758 145.410367 Mareeba Australia
Parramatta_Australia 1 -33.815665 151.00187 Parramatta Australia
Vineyards_CA_UNKNOWNLOCATION 1 Vineyards CA UNKNOWNLOCATION
target images lat lon admin1 admin2
Suva_Fiji 291 -18.133333 178.442277 Suva Fiji
Budapest_Hungary 288 47.494364 19.0652 Budapest Hungary
Reykjavik_Iceland 288 64.128706 -21.892216 Reykjavik Iceland
Rome_Italy 283 41.891306 12.488866 Rome Italy
Yekaterinburg_Russia 245 56.838476 60.605584 Yekaterinburg Russia
Chicago_IL 242 41.876336 -87.626824 Chicago IL
Omsk_Russia 240 54.983144 73.366573 Omsk Russia
Istanbul_Turkey 237 41.008437 28.975669 Istanbul Turkey
Moscow_Russia 235 55.755716 37.617263 Moscow Russia
Belem_Brazil 223 -1.446902 -48.477614 Belem Brazil
Kiev_Ukraine 219 50.452645 30.505766 Kiev Ukraine
Warsaw_Poland 216 52.22978 21.011709 Warsaw Poland
Havana_Cuba 210 23.173581 -82.329336 Havana Cuba
Addis_Ababa_Ethiopia 203 9.029997126 38.70000059 Addis Ababa Ethiopia
Sydney_Australia 270 -33.795698 151.209693 Sydney Australia
Fortaleza_Brazil 198 -3.743738 -38.529958 Fortaleza Brazil
Kabul_Afghanistan 196 34.551569 69.174027 Kabul Afghanistan
Recife_Brazil 196 -8.053334 -34.889862 Recife Brazil
Toronto_Canada 194 43.652791 -79.379191 Toronto Canada
Manaus_Brazil 191 -3.126941 -60.006876 Manaus Brazil
Vienna_Austria 190 48.205968 16.373133 Vienna Austria
Casablanca_Morocco 189 33.581796 -7.589159 Casablanca Morocco
Dublin_Ireland 188 53.3453892 -6.25742197 Dublin Ireland
Kinshasa_DRC 188 -4.326348 15.312588 Kinshasa DRC
Johannesburg_South Africa 183 -26.20556 28.046963 Johannesburg South Africa
Bangui_Central African Republic 180 4.389135 18.550274 Bangui Central African Republic
Harare_Zimbabwe 180 -17.846385 31.033449 Harare Zimbabwe
Chongqing_China 179 29.798597 106.664989 Chongqing China
Bogota_Colombia 174 4.717173 -74.059455 Bogota Colombia
Milwaukee_WI 172 43.029252 -87.918156 Milwaukee WI
Zurich_Switzerland 165 47.381474 8.525242 Zurich Switzerland
Berlin_Germany 163 52.520007 13.404954 Berlin Germany
Dhaka_Bangladesh 163 23.805383 90.398595 Dhaka Bangladesh
Karachi_Pakistan 167 24.845342 66.989209 Karachi Pakistan
Lahore_Pakistan 161 31.554138 74.358386 Lahore Pakistan
Khartoum_Sudan 158 15.579367 32.543482 Khartoum Sudan
Mexico_City_Mexico 155 19.518793 -99.082671 Mexico City Mexico
Hyderabad_India 152 17.380434 78.471484 Hyderabad India
Surabaya_Indonesia 150 -7.191716 112.738059 Surabaya Indonesia
Stockholm_Sweden 148 59.300921 18.084156 Stockholm Sweden
Cape_Town_Africa 146 -33.923145 18.427009 Cape Town Africa
Kathmandu_Nepal 142 27.755476 85.352996 Kathmandu Nepal
Long_Beach_CA 139 33.761376 -118.191332 Long Beach CA
Mumbai_India 137 19.105774 72.862753 Mumbai India
Kashgar_China 130 39.57058 76.010247 Kashgar China
London_UK 129 51.506742 -0.123627 London UK
Juba_Sudan 123 4.858974 31.574176 Juba Sudan
San_Francisco_CA 119 37.829548 -122.282406 San Francisco CA
Tehran_Iran 117 35.707028 51.425803 Tehran Iran
Frankfurt_Germany 115 50.112392 8.683487 Frankfurt Germany
Paris_France 113 48.859448 2.339447 Paris France
Perth_Australia 157 -31.921994 115.903457 Perth Australia
Kuala_Lumpur_Malaysia 108 3.156221 101.708418 Kuala Lumpur Malaysia
Adelaide_Airport_Australia 103 -34.946409 138.533013 Adelaide Airport Australia
Phoenix_AZ 103 33.248439 -111.734514 Phoenix AZ
Kolkata_India 102 22.581197 88.364564 Kolkata India
Buenos_Aires_Argentina 100 -34.561466 -58.378503 Buenos Aires Argentina
New_Delhi_India 100 28.619287 77.234237 New Delhi India
Fort_McMurray_Canada 99 56.75501 -111.498044 Fort McMurray Canada
Las_Vegas_NV 98 36.251698 -115.044709 Las Vegas NV
Lisbon_Portugal 98 38.721842 -9.139449 Lisbon Portugal
Lima_Peru 95 -12.048671 -77.04068 Lima Peru
Miami_FL 94 25.776614 -80.165893 Miami FL
Munich_Germany 94 48.126565 11.559898 Munich Germany
Denver_Colorado 93 39.742691 -104.996488 Denver Colorado
St_Louis_MO 88 38.62321 -90.186959 St Louis MO
Cincinnati_OH 85 39.098034 -84.51136 Cincinnati OH
Algiers_Algeria 84 36.770785 3.054276 Algiers Algeria
Bangkok_Thailand 81 13.697423 100.579843 Bangkok Thailand
Mountain_View_CA 79 37.413197 -122.081458 Mountain View CA
Barcelona_Spain 77 41.385234 2.179632 Barcelona Spain
Los_Angeles_CA 72 34.105949 -118.231221 Los Angeles CA
Seoul_Korea 70 37.543327 126.989576 Seoul Korea
Yangon_Myanmar 70 16.787819 96.150007 Yangon Myanmar
Beijing_China 67 39.9375346 115.837023 Beijing China
Nakhon_Sawan 64 15.695 100.1228 Nakhon Sawan
Amsterdam_Netherlands 60 52.35356 4.88988 Amsterdam Netherlands
Athens_Greece 60 37.95051 23.610848 Athens Greece
Baton_Rouge 60 30.427376 -91.188976 Baton Rouge
Aleppo_Syria 55 36.205983 37.145496 Aleppo Syria
Tarawa_Kiribati 55 1.373766 172.900348 Tarawa Kiribati
Cairo_Egypt 54 29.976176 31.132249 Cairo Egypt
San_Diego_CA 53 32.743137 -117.203601 San Diego CA
Tokyo_Japan 53 35.662308 139.914391 Tokyo Japan
Singapore_Singapore 52 1.260756 103.885993 Singapore Singapore
Shanghai_China 47 31.358233 121.646626 Shanghai China
Yarmouk_Syria 44 33.586337 36.399111 Yarmouk Syria
New York_United States 31 40.726574 -73.994126 New York United States
New_York_United States 25 40.726574 -73.994126 New York United States
Taiz_Yemen 20 13.65942583 43.99370183 Taiz Yemen
Liaoyang_Liaoning_China 19 41.268062 123.233542 Liaoyang Liaoning China
Dallas_TX 13 32.775237 -96.797644 Dallas TX
Rotterdam_Netherlands 13 51.971108 3.98242 Rotterdam Netherlands
Iquitos_Peru 12 -3.725158 -73.243519 Iquitos Peru
Prague_Czech_Republic 8 50.078148 14.442224 Prague Czech Republic
Wood_Wharf 6 51.502928 -0.01246 Wood Wharf
Jakarata_Indonesia 5 -6.1380046 106.8034494 Jakarata Indonesia
Rio_De_Janeiro 5 -22.943409 -43.184291 Rio De Janeiro
Auckland_New Zealand 4 -36.858266 174.764205 Auckland New Zealand
Willbros_HCA 4 35.278324 -89.734644 Willbros HCA
Raleigh_NC 4 35.854322 -78.521675 Raleigh NC
Hong_Kong 2 22.28847 114.172541 Hong Kong
Illkirch_France 2 48.520916 7.712023 Illkirch France
Austin_TX 1 30.51734 -97.71361 Austin TX
Boston_MA 1 42.340836 -71.018347 Boston MA
Iran_Tehran 1 35.713387 51.180716 Iran Tehran
Strasbourg_France 1 48.590646 7.754505 Strasbourg France
(function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){
var helper = require('./legend');
module.exports = function(){
var scale = d3.scale.linear(),
shape = "rect",
shapeWidth = 15,
shapeHeight = 15,
shapeRadius = 10,
shapePadding = 2,
cells = [5],
labels = [],
classPrefix = "",
useClass = false,
title = "",
labelFormat = d3.format(".01f"),
labelOffset = 10,
labelAlign = "middle",
labelDelimiter = "to",
orient = "vertical",
ascending = false,
path,
legendDispatcher = d3.dispatch("cellover", "cellout", "cellclick");
function legend(svg){
var type = helper.d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter),
legendG = svg.selectAll('g').data([scale]);
legendG.enter().append('g').attr('class', classPrefix + 'legendCells');
var cell = legendG.selectAll("." + classPrefix + "cell").data(type.data),
cellEnter = cell.enter().append("g", ".cell").attr("class", classPrefix + "cell").style("opacity", 1e-6),
shapeEnter = cellEnter.append(shape).attr("class", classPrefix + "swatch"),
shapes = cell.select("g." + classPrefix + "cell " + shape);
//add event handlers
helper.d3_addEvents(cellEnter, legendDispatcher);
cell.exit().transition().style("opacity", 0).remove();
helper.d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, path);
helper.d3_addText(legendG, cellEnter, type.labels, classPrefix)
// sets placement
var text = cell.select("text"),
shapeSize = shapes[0].map( function(d){ return d.getBBox(); });
//sets scale
//everything is fill except for line which is stroke,
if (!useClass){
if (shape == "line"){
shapes.style("stroke", type.feature);
} else {
shapes.style("fill", type.feature);
}
} else {
shapes.attr("class", function(d){ return classPrefix + "swatch " + type.feature(d); });
}
var cellTrans,
textTrans,
textAlign = (labelAlign == "start") ? 0 : (labelAlign == "middle") ? 0.5 : 1;
//positions cells and text
if (orient === "vertical"){
cellTrans = function(d,i) { return "translate(0, " + (i * (shapeSize[i].height + shapePadding)) + ")"; };
textTrans = function(d,i) { return "translate(" + (shapeSize[i].width + shapeSize[i].x +
labelOffset) + "," + (shapeSize[i].y + shapeSize[i].height/2 + 5) + ")"; };
} else if (orient === "horizontal"){
cellTrans = function(d,i) { return "translate(" + (i * (shapeSize[i].width + shapePadding)) + ",0)"; }
textTrans = function(d,i) { return "translate(" + (shapeSize[i].width*textAlign + shapeSize[i].x) +
"," + (shapeSize[i].height + shapeSize[i].y + labelOffset + 8) + ")"; };
}
helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign);
helper.d3_title(svg, legendG, title, classPrefix);
cell.transition().style("opacity", 1);
}
legend.scale = function(_) {
if (!arguments.length) return scale;
scale = _;
return legend;
};
legend.cells = function(_) {
if (!arguments.length) return cells;
if (_.length > 1 || _ >= 2 ){
cells = _;
}
return legend;
};
legend.shape = function(_, d) {
if (!arguments.length) return shape;
if (_ == "rect" || _ == "circle" || _ == "line" || (_ == "path" && (typeof d === 'string')) ){
shape = _;
path = d;
}
return legend;
};
legend.shapeWidth = function(_) {
if (!arguments.length) return shapeWidth;
shapeWidth = +_;
return legend;
};
legend.shapeHeight = function(_) {
if (!arguments.length) return shapeHeight;
shapeHeight = +_;
return legend;
};
legend.shapeRadius = function(_) {
if (!arguments.length) return shapeRadius;
shapeRadius = +_;
return legend;
};
legend.shapePadding = function(_) {
if (!arguments.length) return shapePadding;
shapePadding = +_;
return legend;
};
legend.labels = function(_) {
if (!arguments.length) return labels;
labels = _;
return legend;
};
legend.labelAlign = function(_) {
if (!arguments.length) return labelAlign;
if (_ == "start" || _ == "end" || _ == "middle") {
labelAlign = _;
}
return legend;
};
legend.labelFormat = function(_) {
if (!arguments.length) return labelFormat;
labelFormat = _;
return legend;
};
legend.labelOffset = function(_) {
if (!arguments.length) return labelOffset;
labelOffset = +_;
return legend;
};
legend.labelDelimiter = function(_) {
if (!arguments.length) return labelDelimiter;
labelDelimiter = _;
return legend;
};
legend.useClass = function(_) {
if (!arguments.length) return useClass;
if (_ === true || _ === false){
useClass = _;
}
return legend;
};
legend.orient = function(_){
if (!arguments.length) return orient;
_ = _.toLowerCase();
if (_ == "horizontal" || _ == "vertical") {
orient = _;
}
return legend;
};
legend.ascending = function(_) {
if (!arguments.length) return ascending;
ascending = !!_;
return legend;
};
legend.classPrefix = function(_) {
if (!arguments.length) return classPrefix;
classPrefix = _;
return legend;
};
legend.title = function(_) {
if (!arguments.length) return title;
title = _;
return legend;
};
d3.rebind(legend, legendDispatcher, "on");
return legend;
};
},{"./legend":2}],2:[function(require,module,exports){
module.exports = {
d3_identity: function (d) {
return d;
},
d3_mergeLabels: function (gen, labels) {
if(labels.length === 0) return gen;
gen = (gen) ? gen : [];
var i = labels.length;
for (; i < gen.length; i++) {
labels.push(gen[i]);
}
return labels;
},
d3_linearLegend: function (scale, cells, labelFormat) {
var data = [];
if (cells.length > 1){
data = cells;
} else {
var domain = scale.domain(),
increment = (domain[domain.length - 1] - domain[0])/(cells - 1),
i = 0;
for (; i < cells; i++){
data.push(domain[0] + i*increment);
}
}
var labels = data.map(labelFormat);
return {data: data,
labels: labels,
feature: function(d){ return scale(d); }};
},
d3_quantLegend: function (scale, labelFormat, labelDelimiter) {
var labels = scale.range().map(function(d){
var invert = scale.invertExtent(d),
a = labelFormat(invert[0]),
b = labelFormat(invert[1]);
// if (( (a) && (a.isNan()) && b){
// console.log("in initial statement")
return labelFormat(invert[0]) + " " + labelDelimiter + " " + labelFormat(invert[1]);
// } else if (a || b) {
// console.log('in else statement')
// return (a) ? a : b;
// }
});
return {data: scale.range(),
labels: labels,
feature: this.d3_identity
};
},
d3_ordinalLegend: function (scale) {
return {data: scale.domain(),
labels: scale.domain(),
feature: function(d){ return scale(d); }};
},
d3_drawShapes: function (shape, shapes, shapeHeight, shapeWidth, shapeRadius, path) {
if (shape === "rect"){
shapes.attr("height", shapeHeight).attr("width", shapeWidth);
} else if (shape === "circle") {
shapes.attr("r", shapeRadius)//.attr("cx", shapeRadius).attr("cy", shapeRadius);
} else if (shape === "line") {
shapes.attr("x1", 0).attr("x2", shapeWidth).attr("y1", 0).attr("y2", 0);
} else if (shape === "path") {
shapes.attr("d", path);
}
},
d3_addText: function (svg, enter, labels, classPrefix){
enter.append("text").attr("class", classPrefix + "label");
svg.selectAll("g." + classPrefix + "cell text." + classPrefix + "label")
.data(labels).text(this.d3_identity);
},
d3_calcType: function (scale, ascending, cells, labels, labelFormat, labelDelimiter){
var type = scale.ticks ?
this.d3_linearLegend(scale, cells, labelFormat) : scale.invertExtent ?
this.d3_quantLegend(scale, labelFormat, labelDelimiter) : this.d3_ordinalLegend(scale);
type.labels = this.d3_mergeLabels(type.labels, labels);
if (ascending) {
type.labels = this.d3_reverse(type.labels);
type.data = this.d3_reverse(type.data);
}
return type;
},
d3_reverse: function(arr) {
var mirror = [];
for (var i = 0, l = arr.length; i < l; i++) {
mirror[i] = arr[l-i-1];
}
return mirror;
},
d3_placement: function (orient, cell, cellTrans, text, textTrans, labelAlign) {
cell.attr("transform", cellTrans);
text.attr("transform", textTrans);
if (orient === "horizontal"){
text.style("text-anchor", labelAlign);
}
},
d3_addEvents: function(cells, dispatcher){
var _ = this;
cells.on("mouseover.legend", function (d) { _.d3_cellOver(dispatcher, d, this); })
.on("mouseout.legend", function (d) { _.d3_cellOut(dispatcher, d, this); })
.on("click.legend", function (d) { _.d3_cellClick(dispatcher, d, this); });
},
d3_cellOver: function(cellDispatcher, d, obj){
cellDispatcher.cellover.call(obj, d);
},
d3_cellOut: function(cellDispatcher, d, obj){
cellDispatcher.cellout.call(obj, d);
},
d3_cellClick: function(cellDispatcher, d, obj){
cellDispatcher.cellclick.call(obj, d);
},
d3_title: function(svg, cellsSvg, title, classPrefix){
if (title !== ""){
var titleText = svg.selectAll('text.' + classPrefix + 'legendTitle');
titleText.data([title])
.enter()
.append('text')
.attr('class', classPrefix + 'legendTitle');
svg.selectAll('text.' + classPrefix + 'legendTitle')
.text(title)
var yOffset = svg.select('.' + classPrefix + 'legendTitle')
.map(function(d) { return d[0].getBBox().height})[0],
xOffset = -cellsSvg.map(function(d) { return d[0].getBBox().x})[0];
cellsSvg.attr('transform', 'translate(' + xOffset + ',' + (yOffset + 10) + ')');
}
}
}
},{}],3:[function(require,module,exports){
var helper = require('./legend');
module.exports = function(){
var scale = d3.scale.linear(),
shape = "rect",
shapeWidth = 15,
shapePadding = 2,
cells = [5],
labels = [],
useStroke = false,
classPrefix = "",
title = "",
labelFormat = d3.format(".01f"),
labelOffset = 10,
labelAlign = "middle",
labelDelimiter = "to",
orient = "vertical",
ascending = false,
path,
legendDispatcher = d3.dispatch("cellover", "cellout", "cellclick");
function legend(svg){
var type = helper.d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter),
legendG = svg.selectAll('g').data([scale]);
legendG.enter().append('g').attr('class', classPrefix + 'legendCells');
var cell = legendG.selectAll("." + classPrefix + "cell").data(type.data),
cellEnter = cell.enter().append("g", ".cell").attr("class", classPrefix + "cell").style("opacity", 1e-6),
shapeEnter = cellEnter.append(shape).attr("class", classPrefix + "swatch"),
shapes = cell.select("g." + classPrefix + "cell " + shape);
//add event handlers
helper.d3_addEvents(cellEnter, legendDispatcher);
cell.exit().transition().style("opacity", 0).remove();
//creates shape
if (shape === "line"){
helper.d3_drawShapes(shape, shapes, 0, shapeWidth);
shapes.attr("stroke-width", type.feature);
} else {
helper.d3_drawShapes(shape, shapes, type.feature, type.feature, type.feature, path);
}
helper.d3_addText(legendG, cellEnter, type.labels, classPrefix)
//sets placement
var text = cell.select("text"),
shapeSize = shapes[0].map(
function(d, i){
var bbox = d.getBBox()
var stroke = scale(type.data[i]);
if (shape === "line" && orient === "horizontal") {
bbox.height = bbox.height + stroke;
} else if (shape === "line" && orient === "vertical"){
bbox.width = bbox.width;
}
return bbox;
});
var maxH = d3.max(shapeSize, function(d){ return d.height + d.y; }),
maxW = d3.max(shapeSize, function(d){ return d.width + d.x; });
var cellTrans,
textTrans,
textAlign = (labelAlign == "start") ? 0 : (labelAlign == "middle") ? 0.5 : 1;
//positions cells and text
if (orient === "vertical"){
cellTrans = function(d,i) {
var height = d3.sum(shapeSize.slice(0, i + 1 ), function(d){ return d.height; });
return "translate(0, " + (height + i*shapePadding) + ")"; };
textTrans = function(d,i) { return "translate(" + (maxW + labelOffset) + "," +
(shapeSize[i].y + shapeSize[i].height/2 + 5) + ")"; };
} else if (orient === "horizontal"){
cellTrans = function(d,i) {
var width = d3.sum(shapeSize.slice(0, i + 1 ), function(d){ return d.width; });
return "translate(" + (width + i*shapePadding) + ",0)"; };
textTrans = function(d,i) { return "translate(" + (shapeSize[i].width*textAlign + shapeSize[i].x) + "," +
(maxH + labelOffset ) + ")"; };
}
helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign);
helper.d3_title(svg, legendG, title, classPrefix);
cell.transition().style("opacity", 1);
}
legend.scale = function(_) {
if (!arguments.length) return scale;
scale = _;
return legend;
};
legend.cells = function(_) {
if (!arguments.length) return cells;
if (_.length > 1 || _ >= 2 ){
cells = _;
}
return legend;
};
legend.shape = function(_, d) {
if (!arguments.length) return shape;
if (_ == "rect" || _ == "circle" || _ == "line" ){
shape = _;
path = d;
}
return legend;
};
legend.shapeWidth = function(_) {
if (!arguments.length) return shapeWidth;
shapeWidth = +_;
return legend;
};
legend.shapePadding = function(_) {
if (!arguments.length) return shapePadding;
shapePadding = +_;
return legend;
};
legend.labels = function(_) {
if (!arguments.length) return labels;
labels = _;
return legend;
};
legend.labelAlign = function(_) {
if (!arguments.length) return labelAlign;
if (_ == "start" || _ == "end" || _ == "middle") {
labelAlign = _;
}
return legend;
};
legend.labelFormat = function(_) {
if (!arguments.length) return labelFormat;
labelFormat = _;
return legend;
};
legend.labelOffset = function(_) {
if (!arguments.length) return labelOffset;
labelOffset = +_;
return legend;
};
legend.labelDelimiter = function(_) {
if (!arguments.length) return labelDelimiter;
labelDelimiter = _;
return legend;
};
legend.orient = function(_){
if (!arguments.length) return orient;
_ = _.toLowerCase();
if (_ == "horizontal" || _ == "vertical") {
orient = _;
}
return legend;
};
legend.ascending = function(_) {
if (!arguments.length) return ascending;
ascending = !!_;
return legend;
};
legend.classPrefix = function(_) {
if (!arguments.length) return classPrefix;
classPrefix = _;
return legend;
};
legend.title = function(_) {
if (!arguments.length) return title;
title = _;
return legend;
};
d3.rebind(legend, legendDispatcher, "on");
return legend;
};
},{"./legend":2}],4:[function(require,module,exports){
var helper = require('./legend');
module.exports = function(){
var scale = d3.scale.linear(),
shape = "path",
shapeWidth = 15,
shapeHeight = 15,
shapeRadius = 10,
shapePadding = 5,
cells = [5],
labels = [],
classPrefix = "",
useClass = false,
title = "",
labelFormat = d3.format(".01f"),
labelAlign = "middle",
labelOffset = 10,
labelDelimiter = "to",
orient = "vertical",
ascending = false,
legendDispatcher = d3.dispatch("cellover", "cellout", "cellclick");
function legend(svg){
var type = helper.d3_calcType(scale, ascending, cells, labels, labelFormat, labelDelimiter),
legendG = svg.selectAll('g').data([scale]);
legendG.enter().append('g').attr('class', classPrefix + 'legendCells');
var cell = legendG.selectAll("." + classPrefix + "cell").data(type.data),
cellEnter = cell.enter().append("g", ".cell").attr("class", classPrefix + "cell").style("opacity", 1e-6),
shapeEnter = cellEnter.append(shape).attr("class", classPrefix + "swatch"),
shapes = cell.select("g." + classPrefix + "cell " + shape);
//add event handlers
helper.d3_addEvents(cellEnter, legendDispatcher);
//remove old shapes
cell.exit().transition().style("opacity", 0).remove();
helper.d3_drawShapes(shape, shapes, shapeHeight, shapeWidth, shapeRadius, type.feature);
helper.d3_addText(legendG, cellEnter, type.labels, classPrefix)
// sets placement
var text = cell.select("text"),
shapeSize = shapes[0].map( function(d){ return d.getBBox(); });
var maxH = d3.max(shapeSize, function(d){ return d.height; }),
maxW = d3.max(shapeSize, function(d){ return d.width; });
var cellTrans,
textTrans,
textAlign = (labelAlign == "start") ? 0 : (labelAlign == "middle") ? 0.5 : 1;
//positions cells and text
if (orient === "vertical"){
cellTrans = function(d,i) { return "translate(0, " + (i * (maxH + shapePadding)) + ")"; };
textTrans = function(d,i) { return "translate(" + (maxW + labelOffset) + "," +
(shapeSize[i].y + shapeSize[i].height/2 + 5) + ")"; };
} else if (orient === "horizontal"){
cellTrans = function(d,i) { return "translate(" + (i * (maxW + shapePadding)) + ",0)"; };
textTrans = function(d,i) { return "translate(" + (shapeSize[i].width*textAlign + shapeSize[i].x) + "," +
(maxH + labelOffset ) + ")"; };
}
helper.d3_placement(orient, cell, cellTrans, text, textTrans, labelAlign);
helper.d3_title(svg, legendG, title, classPrefix);
cell.transition().style("opacity", 1);
}
legend.scale = function(_) {
if (!arguments.length) return scale;
scale = _;
return legend;
};
legend.cells = function(_) {
if (!arguments.length) return cells;
if (_.length > 1 || _ >= 2 ){
cells = _;
}
return legend;
};
legend.shapePadding = function(_) {
if (!arguments.length) return shapePadding;
shapePadding = +_;
return legend;
};
legend.labels = function(_) {
if (!arguments.length) return labels;
labels = _;
return legend;
};
legend.labelAlign = function(_) {
if (!arguments.length) return labelAlign;
if (_ == "start" || _ == "end" || _ == "middle") {
labelAlign = _;
}
return legend;
};
legend.labelFormat = function(_) {
if (!arguments.length) return labelFormat;
labelFormat = _;
return legend;
};
legend.labelOffset = function(_) {
if (!arguments.length) return labelOffset;
labelOffset = +_;
return legend;
};
legend.labelDelimiter = function(_) {
if (!arguments.length) return labelDelimiter;
labelDelimiter = _;
return legend;
};
legend.orient = function(_){
if (!arguments.length) return orient;
_ = _.toLowerCase();
if (_ == "horizontal" || _ == "vertical") {
orient = _;
}
return legend;
};
legend.ascending = function(_) {
if (!arguments.length) return ascending;
ascending = !!_;
return legend;
};
legend.classPrefix = function(_) {
if (!arguments.length) return classPrefix;
classPrefix = _;
return legend;
};
legend.title = function(_) {
if (!arguments.length) return title;
title = _;
return legend;
};
d3.rebind(legend, legendDispatcher, "on");
return legend;
};
},{"./legend":2}],5:[function(require,module,exports){
d3.legend = {
color: require('./color'),
size: require('./size'),
symbol: require('./symbol')
};
},{"./color":1,"./size":3,"./symbol":4}]},{},[5]);
target images lat lon admin1 admin2
Richards_Bay_South Africa 298 -28.80403 32.043192 Richards Bay South Africa
Murmansk_Russia 296 68.979391 33.057956 Murmansk Russia
Dalrymple_Australia 283 -21.28152 149.286979 Dalrymple Australia
Sydney_Canada 281 46.159843 -60.200988 Sydney Canada
RidleyIsland_BC 250 54.227414 -130.323887 RidleyIsland BC
Newcastle_Australia 239 -32.895773 151.750897 Newcastle Australia
Saldanha_Bay_South Africa 232 -33.004484 17.999653 Saldanha Bay South Africa
Maputo_Mozambique 222 -25.951745 32.528648 Maputo Mozambique
Gladstone_Australia 211 -23.842417 151.227421 Gladstone Australia
Port_Hedland_Australia 201 -20.292107 118.602456 Port Hedland Australia
Beeshoek_South_Africa 197 -28.325214 22.987371 Beeshoek South Africa
Beira_Mozambique 187 -19.815868 34.8533 Beira Mozambique
North_Antelope_WY 185 43.629675 -105.224965 North Antelope WY
Puerto_Bolivar_Colombia 179 12.241776 -71.971124 Puerto Bolivar Colombia
Nacala_Mozambique 177 -14.535716 40.647274 Nacala Mozambique
Ranger_Mine_Australia 171 -12.678737 132.908203 Ranger Mine Australia
Morupule_Botswana 170 -22.518999 27.035455 Morupule Botswana
Oyu_Tolgoi_Mongolia 175 43.012371 106.869292 Oyu Tolgoi Mongolia
Paranam_Suriname 155 5.598899 -55.10785 Paranam Suriname
Vancouver_BC 155 49.027188 -123.141264 Vancouver BC
Abbot_Point_Australia 153 -19.887745 148.076998 Abbot Point Australia
Xiamen_China 153 24.51336 118.097693 Xiamen China
Brisbane_Australia 152 -27.370444 153.185689 Brisbane Australia
Cape_Lambert_Australia 149 -20.563491 117.207836 Cape Lambert Australia
Moatize_Mozambique 144 -16.170106 33.772278 Moatize Mozambique
Lobito_Angola 143 -12.339812 13.573958 Lobito Angola
Shenzen_China 137 22.566523 113.877843 Shenzen China
Nchanga_Zambia 136 -12.513365 27.857638 Nchanga Zambia
Haerwusu_China 133 39.904341 111.226947 Haerwusu China
Buenavista_Mexico 119 29.950367 -109.276557 Buenavista Mexico
Qinhuangdao_China 106 39.950385 119.711283 Qinhuangdao China
Kumptor_Kyrgystan 104 41.859319 78.197324 Kumptor Kyrgystan
Rossing_Namibia 92 -22.481063 15.054992 Rossing Namibia
Norfolk_VA 86 36.970311 -76.318552 Norfolk VA
Falcondo_Dominican Republic 82 18.904507 -70.322353 Falcondo Dominican Republic
Mt_Polley_Mine_Canada 76 52.511276 -121.598302 Mt Polley Mine Canada
Neptune_BC 61 49.306261 -123.051598 Neptune BC
Cerrejon_Colombia 60 11.161821 -72.519619 Cerrejon Colombia
United_Coal_Terminal 56 29.622564 -89.890108 United Coal Terminal
Murrin_Murrin_stereo_UNKNOWNLOCATION 12 Murrin Murrin stereo UNKNOWNLOCATION
Qingdao_Port_China 12 36.106145 120.319442 Qingdao Port China
DeltaPort_Coal_Terminal_Vancouver_BC 9 49.017925 -123.163914 DeltaPort Coal Terminal Vancouver BC
McDuffie_Island_AL 6 30.656125 -88.03755 McDuffie Island AL
Scherer_GA 5 33.058435 -83.808823 Scherer GA
Ahvaz_Iran 1 31.318 48.7178 Ahvaz Iran
<!DOCTYPE html>
<head>
<meta charset="utf-8">
<style>
g {
stroke: white;
stroke-width: 0.3px;
fill: rgb(239,239,239);
}
g.cell {
fill: rgba(0, 98, 102, 0.8);
stroke: white;
}
text.legendTitle, text.label {
font: 13px sans-serif;
font-family: 'Lato', sans-serif;
color: black;
stroke: none;
fill: gray;
}
svg {
cursor: move; /* fallback if grab cursor is unsupported */
cursor: grab;
cursor: -moz-grab;
cursor: -webkit-grab;
}
svg:active {
cursor: grabbing;
cursor: -moz-grabbing;
cursor: -webkit-grabbing;
}
div.tooltip {
position: absolute;
text-align: center;
padding: 10px;
font: 12px sans-serif;
font-family: 'Lato', sans-serif;
color: rgb(79, 82, 88);
background: rgb(255, 255, 255);
border: 0px;
border-radius: 2px;
line-height: 16px;
pointer-events: none;
}
button {
width: 2rem;
border-radius: 0;
box-shadow: none;
font-size: 1.5em;
font-weight: 400;
text-align: center;
color: gray;
}
#parentDiv {
position: relative;
width: 1200px;
height: 380px;
border: 1px solid lightgray;
background-color: rgb(249,249,249); <!-- rgb(51,51,51); OR #fff; OR rgb(249,249,249) -->
}
#zoomButtons {
position: absolute;
bottom: 0;
right: 0;
}
</style>
<link href="https://fonts.googleapis.com/css?family=Source+Sans+Pro" rel="stylesheet">
<link href="https://fonts.googleapis.com/css?family=Lato" rel="stylesheet">
</head>
<body>
<script src="https://d3js.org/d3.v3.min.js"></script>
<script src="https://d3js.org/topojson.v0.min.js"></script>
<script src="https://d3js.org/d3-array.v1.min.js"></script>
<script src="https://d3js.org/d3-geo.v1.min.js"></script>
<script src="https://d3js.org/d3-geo-projection.v2.min.js"></script>
<script src="d3-legend.js"></script>
<div id="parentDiv">
<div id="zoomButtons">
<button id="zoom_in">+</button><br>
<button id="zoom_out">-</button>
</div>
</div>
<script>
var width = 1200, // 860
height = 380;
var projection = d3.geoRobinson()
.center([-59, -9])
.scale(170) //280
.rotate([0,0]);
var svg = d3.select("#parentDiv")
.append("svg")
.attr("width", width)
.attr("height", height);
var path = d3.geo.path()
.projection(projection);
var div = d3.select("body")
.append("div")
.attr("class", "tooltip")
.style("opacity", 0);
var circleScale = d3.scale.linear()
.domain([1, 708])
.range([3,13]);
var g = svg.append("g"); // world background json
var g2 = svg.append("g"); // countries json
var g3 = svg.append("g"); // oil csv
var g4 = svg.append("g"); // ports csv
var g5 = svg.append("g"); // cities csv
var g6 = svg.append("g"); // retail csv
var g7 = svg.append("g"); // supply chain csv
var g8 = svg.append("g"); // agriculture csv
var g9 = svg.append("g"); // social impact csv
var g10 = svg.append("g"); // dry bulk and mines csv
var g11 = svg.append("g"); // intelligence csv
// legend background
var rectangle = svg.append("rect")
.attr("x", 0) //0
.attr("y", 294) //518
.attr("width", 183)
.attr("height", 86)
.style("fill", 'rgba(255, 255, 255, 0.7)');
var linearSize = d3.scale.linear().domain([1, 708]).range([3,13]);
var svg2 = d3.select("svg");
svg2.append("g")
.attr("class", "legendSize")
.attr("transform", "translate(5, 312)"); //1024
var legendSize = d3.legend.size()
.scale(linearSize)
.shape('circle')
.shapePadding(23)
.labels(["1", "100", "200", "400", "700"])
.cells([1,100,200,400,700])
.labelOffset(20)
.orient('horizontal')
.title("SkySat Image Quantity");
svg2.select(".legendSize")
.call(legendSize);
// *************************************************************
// Radio Menu
var defaultColor = "#8F9399"
var hoverColor = "#009DA4"
var pressedColor = "#006266"
var radioMenu = svg.append("rect")
.attr("id", "radioRect")
.attr("width", "107px")
.attr("height", "256px")
.attr("x", 0)
.attr("y", 0)
.attr("fill", "rgba(255, 255, 255, 0.7)");
var allButtons = svg.append("g")
.attr("id", "toggle");
var labels = ["OIL TANKS", "PORTS", "CITIES", "RETAIL", "SUPPLY CHAIN", "AGRICULTURE", "SOCIAL IMPACT", "BULK/MINES", "INTELLIGENCE", "FULL ARCHIVE"];
var buttonGroups = allButtons.selectAll("g.button")
.data(labels)
.enter()
.append("g")
.attr("class", "button")
.attr("id", function(d){
var theID = d.replace(/\s/g, '');
return theID;
})
.style("cursor", "pointer")
.on("click", function(d,i) { // (d,i)
updateButtonColors(d3.select(this), d3.select(this.parentNode))
if (d == "OIL TANKS") {
g3.style('display', 'inline')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "PORTS") {
g3.style('display', 'none')
g4.style('display', 'inline')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "CITIES") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'inline')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "RETAIL") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'inline')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "SUPPLY CHAIN") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'inline')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "AGRICULTURE") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'inline')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "SOCIAL IMPACT") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'inline')
g10.style('display', 'none')
g11.style('display', 'none')
}
else if (d == "BULK/MINES") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'inline')
g11.style('display', 'none')
}
else if (d == "INTELLIGENCE") {
g3.style('display', 'none')
g4.style('display', 'none')
g5.style('display', 'none')
g6.style('display', 'none')
g7.style('display', 'none')
g8.style('display', 'none')
g9.style('display', 'none')
g10.style('display', 'none')
g11.style('display', 'inline')
}
else if (d == "FULL ARCHIVE") {
g3.style('display', 'inline')
g4.style('display', 'inline')
g5.style('display', 'inline')
g6.style('display', 'inline')
g7.style('display', 'inline')
g8.style('display', 'inline')
g9.style('display', 'inline')
g10.style('display', 'inline')
g11.style('display', 'inline')
}
})
.on("mouseover", function() {
if (d3.select(this).select("rect").attr("fill") != pressedColor) {
d3.select(this)
.select("rect")
.attr("fill", hoverColor);
}
})
.on("mouseout", function() {
if (d3.select(this).select("rect").attr("fill") != pressedColor) {
d3.select(this)
.select("rect")
.attr("fill", defaultColor);
}
});
// hide layers on load
g4.style('display', 'none');
g5.style('display', 'none');
g6.style('display', 'none');
g7.style('display', 'none');
g8.style('display', 'none');
g9.style('display', 'none');
g10.style('display', 'none');
g11.style('display', 'none');
var bWidth = 95; // button width
var bHeight = 20; // button height
var bSpace = 5; // space between buttons
var x0 = 5; // x offset
var y0 = 5; // y offset
// adding a rect to each toggle button group
buttonGroups.append("rect")
.attr("class", "buttonRect")
.attr("width", bWidth)
.attr("height", bHeight)
.attr("x", x0)
.attr("y", function(d,i) {return y0+(bHeight+bSpace)*i;})
// rx and ry for rounded corners
.attr("fill", defaultColor)
// add text to each toggle button group, centered in rect
buttonGroups.append("text")
.attr("class", "buttonText")
.attr("font-family", "Lato")
.attr("font-size", "12px")
.attr("x", x0 + bWidth/2)
.attr("y", function(d,i) {
return y0 + (bHeight + bSpace)*i + bHeight/2;
})
.attr("text-anchor", "middle")
.attr("dominant-baseline", "central")
.attr("fill", "#fff")
.text(function(d) {return d;})
function updateButtonColors(button, parent) {
parent.selectAll("rect")
.attr("fill", defaultColor)
button.select("rect.buttonRect")
.attr("fill", pressedColor)
}
// default "pressed" radio button (oil tanks for now)
d3.select("g#OILTANKS")
.selectAll("rect")
.attr("fill", pressedColor)
d3.json("world-background.json", function(world) {
// load and display the World
d3.json("world-110m.json", function(land) {
// load and display the oil tanks
d3.csv("oil-format.csv", function(data) {
// load and display the ports
d3.csv("ports-format.csv", function(data) {
d3.csv("cities-format.csv", function(data) {
d3.csv("retail-format.csv", function(data) {
d3.csv("supplychain-format.csv", function(data) {
d3.csv("agriculture-format.csv", function(data) {
d3.csv("socialimpact-format.csv", function(data) {
d3.csv("drybulk-format.csv", function(data) {
d3.csv("intelligence-format.csv", function(data) {
g11.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g10.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g9.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g8.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g7.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g6.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g5.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g4.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g3.selectAll("circle")
.data(data.filter(function(d){
if(d.lon == ""){
return false;
}
else {
return true;
}
}))
.enter()
.append("circle")
.attr("cx", function(d) {
return projection([d.lon, d.lat])[0];
})
.attr("cy", function(d) {
return projection([d.lon, d.lat])[1];
})
.attr("r", function(d){
return circleScale(d.images);
})
.on('mouseover', mouseover)
.on('mouseout', mouseout)
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
});
g2.selectAll("path")
.data(topojson.object(land, land.objects.countries)
.geometries)
.enter()
.append("path")
.attr("d", path)
.style("fill", "#c7c7c7");
});
g.selectAll("path")
.data(topojson.object(world, world.objects.worldbackground)
.geometries)
.enter()
.append("path")
.attr("d", path)
});
// zoom and pan
var zoom = d3.behavior.zoom()
.scaleExtent([0.8, 3]) // limits zoom range (only change 2nd #)
.on("zoom", zoomed);
function zoomed() {
g.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g2.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g3.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g4.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g5.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g6.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g7.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g8.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g9.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g10.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
g11.attr("transform",
"translate(" + zoom.translate() + ")" +
"scale(" + zoom.scale() + ")"
);
circleScale.range([3/zoom.scale(), 13/zoom.scale()]);
g3.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g4.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g5.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g6.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g7.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g8.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g9.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g10.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
g11.selectAll("circle")
.attr("d", path.projection(projection))
// Keeps circle size the same on zoom
.attr("r", function(d){
return circleScale(d.images);
})
};
function interpolateZoom (translate, scale) {
var self = this;
return d3.transition().duration(350).tween("zoom", function() {
var iTranslate = d3.interpolate(zoom.translate(), translate),
iScale = d3.interpolate(zoom.scale(), scale);
return function (t) {
zoom.scale(iScale(t))
.translate(iTranslate(t));
zoomed();
};
});
}
function zoomClick() {
var clicked = d3.event.target,
direction = 1,
factor = 0.2,
target_zoom = 1,
center = [width / 2, height / 2],
extent = zoom.scaleExtent(),
translate = zoom.translate(),
translate0 = [],
l = [],
view = {x: translate[0], y: translate[1], k: zoom.scale()};
d3.event.preventDefault();
direction = (this.id === 'zoom_in') ? 1 : -1;
target_zoom = zoom.scale() * (1 + factor * direction);
if (target_zoom < extent[0] || target_zoom > extent[1]) { return false; }
translate0 = [(center[0] - view.x) / view.k, (center[1] - view.y) / view.k];
view.k = target_zoom;
l = [translate0[0] * view.k + view.x, translate0[1] * view.k + view.y];
view.x += center[0] - l[0];
view.y += center[1] - l[1];
interpolateZoom([view.x, view.y], view.k);
}
d3.selectAll('button').on('click', zoomClick);
function mouseover(d, i){
d3.select(this)
.style('fill', 'rgba(0, 0, 0, 0.7)')
.style('stroke', 'white')
//.style('stroke-width', 0.3)
.style('cursor', 'auto');
div.transition()
.duration(150)
.style("opacity", 0.9);
div.text(d.place)
.style("left", (d3.event.pageX - 50) + "px")
.style("top", (d3.event.pageY - 65) + "px");
div.html("<b>" + d.admin1 + ", " + d.admin2 + "</b>" + "<br/><span>Images: " + d.images + "</span>");
}
function mouseout(d, i){
g3.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g4.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g5.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g6.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g7.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g8.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g9.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g10.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
g11.selectAll("circle")
.style("fill", "rgba(0, 98, 102, 0.7)")
.style('stroke', 'white')
.style('stroke-width', 0.3)
div.transition()
.duration(200)
.style("opacity", 0);
}
svg.call(zoom).on("wheel.zoom", null);
</script>
</body>
</html>
target images lat lon admin1 admin2
Mogadishu_Somalia 195 2.04815 45.332396 Mogadishu Somalia
Fiery_Cross_South China Sea 194 9.700843 113.07458 Fiery Cross South China Sea
Punggye_Ri_North Korea 152 41.277222 129.088186 Punggye Ri North Korea
Yongbyon_North Korea 113 39.768724 125.750202 Yongbyon North Korea
Tartous_Syria 54 34.953627 35.907335 Tartous Syria
Natanz_Iran 23 33.724 51.7288 Natanz Iran
Fordo_Iran 20 34.884 50.995 Fordo Iran
Wonson_Port_North Korea 19 39.161157 127.472549 Wonson Port North Korea
Fallujah_Iraq 15 33.3487 43.7841 Fallujah Iraq
Jonchon_North Korea 15 40.631139 126.431897 Jonchon North Korea
Iranian_site_UNKNOWNLOCATION 4 Iranian site UNKNOWNLOCATION
Nampo_North Korea 4 38.73465 125.400446 Nampo North Korea
Punggye-Ri_North Korea 4 41.132866 129.165836 Punggye-Ri North Korea
Sohae_North Korea 4 39.659559 124.705899 Sohae North Korea
DI_08-3_North Korea 2 41.2802 129.0853 DI 08-3 North Korea
Iwo_jima_Japan 2 24.7802 141.3164 Iwo jima Japan
Qingdao_Naval_Base_China 2 36.066 120.318 Qingdao Naval Base China
Senkaku_Islands_ 2 25.804282 123.594333 Senkaku Islands
Western_AOI_International_Water_Land_UNKNOWNLOCATION 2 Western AOI International Water Land UNKNOWNLOCATION
Dinghai_Naval_Base_China 1 30.015 122.085 Dinghai Naval Base China
Eastern_AOI_ 1 32.366111 35.610833 Eastern AOI
Night_South_China_Sea_UNKNOWNLOCATION 1 Night South China Sea UNKNOWNLOCATION
Ops_Western_AOI_International_Water_Land_UNKNOWNLOCATION 1 Ops Western AOI International Water Land UNKNOWNLOCATION
Sinpo_Shipyard_North Korea 1 40.022774 128.16134 Sinpo Shipyard North Korea
Sinpo_submarine_base_North Korea 1 40.000336 128.21319 Sinpo submarine base North Korea
Zhanjiang_Naval_Base_China 1 21.224 110.43 Zhanjiang Naval Base China
target images lat lon admin1 admin2
Cushing_OK 708 36.030123 -96.753332 Cushing OK
Skikda_Algeria 567 36.862756 6.965184 Skikda Algeria
Freeport_Bahamas 538 26.516158 -78.759194 Freeport Bahamas
Ras_Lanuf_Libya 514 30.472767 18.57378 Ras Lanuf Libya
St_Eustatius_Caribbean_Netherlands 511 17.496017 -62.997333 St Eustatius Caribbean Netherlands
Singapore 481 1.260756 103.885993 Singapore Singapore
Turpan_China 465 43.08362 90.409898 Turpan China
Yonbu_Saudi_Arabia 459 23.973352 38.252084 Yonbu Saudi Arabia
Lanzhou_China 458 36.115104 103.63524 Lanzhou China
Manangareza_Madagascar 451 -18.168374 49.393544 Manangareza Madagascar
Karamay_China 441 45.5734 84.995579 Karamay China
Marisa_Libya 439 32.041997 23.977474 Marisa Libya
Zawiya_Libya 426 32.782238 12.698416 Zawiya Libya
Castries_St_Lucia 423 13.983473 -61.020872 Castries St Lucia
Daqing_China 402 46.323368 124.741102 Daqing China
Mombassa_Kenya 397 -4.042567 39.642844 Mombassa Kenya
Dalian_China 388 38.980128 121.868549 Dalian China
Qingdao_China 380 36.057824 120.219739 Qingdao China
Sarakhs_Iran 379 36.469826 60.845928 Sarakhs Iran
Uruma_Japan 372 26.349379 127.961186 Uruma Japan
Malongo_Angola 371 -5.400736 12.212082 Malongo Angola
Dubai_UAE 368 24.967792 55.049313 Dubai UAE
Mina_al_Fahl_Oman 362 23.622374 58.514455 Mina al Fahl Oman
Sidi_Kerir_Egypt 355 31.054632 29.66952 Sidi Kerir Egypt
Dushanzi_China 348 44.350424 84.813302 Dushanzi China
Tema_Ghana 348 5.736797 0.007016 Tema Ghana
Esmeraldas_Ecuador 348 0.938954 -79.691186 Esmeraldas Ecuador
Puerto_la_Cruz_Venezuela 346 10.221331 -64.619902 Puerto la Cruz Venezuela
Sangachal_Azerbaijan 331 40.184661 49.480031 Sangachal Azerbaijan
St_Croix_Virgin_Islands 331 17.704258 -64.753207 St Croix Virgin Islands
Sarir_Libya 315 27.655049 22.494969 Sarir Libya
Supsa_Georgia 314 42.011201 41.763794 Supsa Georgia
Zhanjiang_China 308 21.154153 110.401163 Zhanjiang China
Novorossiysk Russia 307 44.748036 37.902985 Novorossiysk Russia
Mellitah_Libya 303 32.853706 12.238211 Mellitah Libya
Houston_TX 302 29.791867 -95.084028 Houston TX
Rabigh_Saudi_Arabia 300 22.717271 39.017128 Rabigh Saudi Arabia
Constanta_Port_Romania 292 44.129383 28.646271 Constanta Port Romania
Khark_Island_Iran 292 29.229537 50.314967 Khark Island Iran
Luanda_Angola 281 -8.750827 13.321708 Luanda Angola
Brownsville_TX 276 25.957934 -97.383014 Brownsville TX
Cartagena_Colombia 275 10.44025 -75.542856 Cartagena Colombia
Victoria_Seychelles 272 -4.629577 55.463856 Victoria Seychelles
Ras_Tanura_Saudi_Arabia 271 26.658965 50.148072 Ras Tanura Saudi Arabia
Agat_Guam 270 13.417492 144.683003 Agat Guam
Zhousan_China 263 29.971475 122.156332 Zhousan China
Abqaiq_Saudi_Arabia 260 25.931914 49.680098 Abqaiq Saudi Arabia
Wakayama_Japan 284 34.171652 135.190719 Wakayama Japan
Rafsanjan_Iran 255 30.3716 55.854658 Rafsanjan Iran
Jubail_Saudi_Arabia 237 27.057426 49.60502 Jubail Saudi Arabia
Mangalore_India 237 12.915228 74.812474 Mangalore India
Tianjin_China 229 39.06263 117.763064 Tianjin China
Covenas_Colombia 229 9.405002 -75.694401 Covenas Colombia
DeKastri_Russia 228 51.48201 140.870652 DeKastri Russia
Jamnagar_India 228 22.451091 69.847509 Jamnagar India
Caleta_Olivia_Argentina 228 -46.4303 -67.523132 Caleta Olivia Argentina
Abidjan_Ivory_Coast 224 5.282115 -3.994381 Abidjan Ivory Coast
Gamba_Gabon 224 -2.782221 10.028041 Gamba Gabon
Kribi_Cameroon 223 2.9 9.8 Kribi Cameroon
Caleta_Cordova_Argentina 222 -45.756103 -67.388175 Caleta Cordova Argentina
Trieste_Italy 222 45.607614 13.814974 Trieste Italy
Puerto_Jose_Venezuela 221 10.078574 -64.86525 Puerto Jose Venezuela
Pengzhou_China 220 31.077833 103.904656 Pengzhou China
Kozmino_Bay_Russia 217 42.732158 133.045744 Kozmino Bay Russia
Dar_es_Salaam_Tanzania 214 -6.844017 39.297458 Dar es Salaam Tanzania
Kagoshima_Japan 210 31.388 130.548812 Kagoshima Japan
Tegaldowo_Java_Indonesia 204 -6.872116 109.644607 Tegaldowo Java Indonesia
Rotterdam_Netherlands 203 51.971108 3.98242 Rotterdam Netherlands
Ulsan_Korea 202 35.565766 129.389991 Ulsan Korea
Milford_Haven_Wales 198 51.769632 -5.0113 Milford Haven Wales
Shiraz_Iran 196 29.755283 52.674886 Shiraz Iran
Plock_Poland 195 52.530493 19.835751 Plock Poland
Le_Havre_France 194 49.489019 0.279712 Le Havre France
Hassi_Messoaud_Algeria 194 31.662705 6.026868 Hassi Messoaud Algeria
Yang_Pu_China 194 19.78131 109.181323 Yang Pu China
Tiszaujvaros_Hungary 193 47.899336 21.032098 Tiszaujvaros Hungary
Zhenhai_China 193 30.00533 121.64786 Zhenhai China
Amuay_Venezuela 192 11.739006 -70.195204 Amuay Venezuela
Mutsu_Ogawara_Japan 190 40.974965 141.288111 Mutsu Ogawara Japan
Yuzhny_Ukraine 188 46.618014 31.049435 Yuzhny Ukraine
Doba_Chad 185 8.588448 16.830446 Doba Chad
Tomakomai_Japan 184 42.646927 141.816079 Tomakomai Japan
Bandar_Abbas_Iran 184 27.195312 56.079706 Bandar Abbas Iran
Vacherie_LA 183 30.023137 -90.459494 Vacherie LA
Matanzas_Cuba 182 23.06769 -81.542046 Matanzas Cuba
Hardisty_Canada 180 52.638102 -111.278567 Hardisty Canada
Baiji_Iraq 177 35.005311 43.493541 Baiji Iraq
Agioi_Theodoroi_Greece 175 37.9269353 23.07450771 Agioi Theodoroi Greece
Penuelas_Puerto_Rico 174 17.994918 -66.743128 Penuelas Puerto Rico
Paradip_Port_India 172 20.312835 86.696132 Paradip Port India
Waha_Libya 171 28.903102 10.048467 Waha Libya
Tuapse_Russia 169 44.102977 39.100486 Tuapse Russia
Corpus_Christi_TX_Oil_Terminal 165 27.847414 -97.553042 Corpus Christi TX Oil Terminal
Primorsk_Russia 165 60.3385 28.7385 Primorsk Russia
Priolo_Gargallo_Italy 163 37.2408105 15.1969675 Priolo Gargallo Italy
Kaduna_Nigeria 163 10.426149 7.490285 Kaduna Nigeria
Laizhou_China 161 37.415529 119.979739 Laizhou China
Wilhelmshaven_Germany 158 53.5448 8.122365 Wilhelmshaven Germany
Pavlodar_Kazakhstan 157 52.365032 76.915066 Pavlodar Kazakhstan
Tabriz_Iran 157 38.056183 46.178646 Tabriz Iran
Ajdabiya_Libya 157 30.911563 20.073307 Ajdabiya Libya
Shibushi_Japan 156 31.366962 131.025984 Shibushi Japan
Milnerton_Africa 151 -33.83338 18.545784 Milnerton Africa
Turkmenbashi_Turkmenistan 151 40.010412 52.96331 Turkmenbashi Turkmenistan
Coatzacoalcos_Mexico 151 18.115438 -94.383301 Coatzacoalcos Mexico
Wattala_Sri_Lanka 149 7.03768 79.86 Wattala Sri Lanka
Daura_Iraq 148 33.270626 44.437692 Daura Iraq
River_Rouge_MI 146 42.286181 -83.132112 River Rouge MI
Bandar_Iran 146 30.437114 49.088969 Bandar Iran
Kyaukpyu_Myanmar 146 19.362054 93.673369 Kyaukpyu Myanmar
Beilun_China 145 30.142648 121.954395 Beilun China
Port_Arthur_TX 144 29.872204 -93.976147 Port Arthur TX
Arak_Iran 143 34.007547 49.472499 Arak Iran
San_Nicolas_Aruba 142 12.446445 -69.908903 San Nicolas Aruba
Willemstad_Antilles 141 12.132995 -68.929465 Willemstad Antilles
Banias_Syria 140 35.218334 35.965606 Banias Syria
San_Fernando_Trinidad_and_Tobago 139 10.330531 -61.44237 San Fernando Trinidad and Tobago
Tumaco_Colombia 138 1.80505 -78.778498 Tumaco Colombia
Nelahozeves_Czech_Republic 137 50.267735 14.319339 Nelahozeves Czech Republic
Paraiso_Mexico 136 18.42637 -93.194564 Paraiso Mexico
Esfahan_Iran 134 32.784373 51.504205 Esfahan Iran
Muskiz_Spain 129 43.34451 -3.076998 Muskiz Spain
Penajam_Indonesia 129 -1.329077 116.686188 Penajam Indonesia
Long_Beach_CA 128 33.761376 -118.191332 Long Beach CA
Nuwaidrat_Bahrain 127 26.128381 50.611405 Nuwaidrat Bahrain
Hamburg_Germany 124 53.510631 9.959503 Hamburg Germany
Fujairah_UAE 121 25.198295 56.354174 Fujairah UAE
Lanshan_China 119 35.18319 119.377511 Lanshan China
Homs_Syria 119 34.717148 36.638481 Homs Syria
Nueva_Loja_Ecuador 119 0.078168 -76.881025 Nueva Loja Ecuador
Shangkan_China 118 21.460934 111.300831 Shangkan China
Basrah_Iraq 115 30.453042 47.662448 Basrah Iraq
Quanzhou_China 111 25.041498 119.007666 Quanzhou China
Sakhalin_Russia 110 52.526799 143.123274 Sakhalin Russia
Ceyhan_Turkey 109 36.897212 35.908049 Ceyhan Turkey
Levis_Canada 107 46.76591 -71.199365 Levis Canada
Edmonton_AB 106 53.561454 -113.343556 Edmonton AB
Fos_Sur_Mer_France 106 43.479395 4.907417 Fos Sur Mer France
Mutare_Zimbabwe 103 -18.980549 32.531103 Mutare Zimbabwe
Changxingdaozhen_China 102 39.5944 121.305 Changxingdaozhen China
Batangas_City_Philippines 102 13.789679 121.046848 Batangas City Philippines
Seria_Brunei 102 4.611107 114.342164 Seria Brunei
Nairobi_Kenya 102 -1.302443 36.874432 Nairobi Kenya
Shenjia_Bay_Island_China 98 30.664161 122.003805 Shenjia Bay Island China
South_Tianjin_China 98 38.736661 117.550114 South Tianjin China
Kingston_Jamaica 97 17.987818 -76.8212 Kingston Jamaica
Papar_Malaysia 97 5.636748 115.894164 Papar Malaysia
Shunan_Japan 95 34.017975 131.816331 Shunan Japan
El_Palito_Venezuela 94 10.477695 -68.099921 El Palito Venezuela
Fao_Iraq 93 29.959696 48.43919 Fao Iraq
Iwaki_Japan 92 36.929627 140.850584 Iwaki Japan
Savannah_GA 92 32.111032 -81.129171 Savannah GA
Port_Sudan_Sudan 91 19.391369 37.295011 Port Sudan Sudan
Tangshan_China 86 38.983793 118.562834 Tangshan China
Port_Moresby_Papua_New_Guinea 86 -9.452336 147.117691 Port Moresby Papua New Guinea
Whiddy_Island_Ireland 81 51.685628 -9.519994 Whiddy Island Ireland
Gaolan_Island_China 79 21.969934 113.236675 Gaolan Island China
Puerto_Sandino_Nicaragua 79 12.179557 -86.749737 Puerto Sandino Nicaragua
Shetland_Scotland 78 60.460719 -1.277578 Shetland Scotland
Tuscaloosa_AL 78 33.199892 -87.604865 Tuscaloosa AL
Eilat_Jordan 78 29.566014 34.909134 Eilat Jordan
Kovaya_India 78 20.918306 71.481243 Kovaya India
East_Grand_Bahama_The_Bahamas 76 26.62992821 -78.23087454 East Grand Bahama The Bahamas
Bajos_de_Haina_Dominican_Republic 75 18.411925 -70.023745 Bajos de Haina Dominican Republic
Mouza_Kund_Pakistan 74 24.911724 66.704576 Mouza Kund Pakistan
Midland_TX 72 32.010235 -102.025135 Midland TX
Bayuquan_China 71 40.345211 122.093988 Bayuquan China
Nanjing_China 70 32.283072 119.131344 Nanjing China
Ichihara_Japan 67 35.599016 140.13369 Ichihara Japan
Cayce_MS 67 34.979643 -89.643725 Cayce MS
Iquitos_Peru 67 -3.725158 -73.243519 Iquitos Peru
Flotta_Scotland 66 58.837386 -3.120739 Flotta Scotland
El_Paso_TX 66 31.769791 -106.396682 El Paso TX
Fiumicino_Italy 64 41.855985 12.33318 Fiumicino Italy
Sitra_Bahrain 64 26.143903 50.619928 Sitra Bahrain
Martinez_CA 63 38.092792 -122.097299 Martinez CA
Gdansk_Poland 62 54.414887 18.714577 Gdansk Poland
El_Dorado_KS 61 37.804301 -96.8851 El Dorado KS
Santa_Maria_CA 60 34.930017 -120.509321 Santa Maria CA
North_Salt_Lake_UT 59 40.895987 -111.879682 North Salt Lake UT
Longview_TX 59 32.518867 -94.82729 Longview TX
Scurry_County_TX 58 32.533203 -100.838372 Scurry County TX
Yuzhny_Russia 58 46.630144 31.018999 Yuzhny Russia
Menemeni_Greece 57 40.66168 22.875284 Menemeni Greece
Rincon_Bonaire 57 12.22486419 -68.38444233 Rincon Bonaire
Sao_Francisco_do_Sul_Brazil 57 -26.226933 -48.527709 Sao Francisco do Sul Brazil
Antwerp_Belgium 56 51.267021 4.360235 Antwerp Belgium
Big_Spring_TX 56 32.275731 -101.41503 Big Spring TX
Vicksburg_MS 55 32.369356 -90.889974 Vicksburg MS
Basrah_Iraq 54 30.453042 47.662448 Basrah Iraq
Omisalj_Croatia 54 45.345314 14.544074 Omisalj Croatia
Haditha_Iraq 54 34.073177 42.362623 Haditha Iraq
Belle_Chasse_LA 54 29.680668 -89.97482 Belle Chasse LA
Roxana_IL 53 38.831567 -90.080488 Roxana IL
Mobile_AL 53 30.645922 -88.044184 Mobile AL
Abadan_Iran 53 30.355097 48.277377 Abadan Iran
Manaus_Brazil 52 -3.126941 -60.006876 Manaus Brazil
Coari_Brazil 52 -3.946564 -63.163113 Coari Brazil
Puerto_Rosales_Argentina 52 -38.91024 -62.064865 Puerto Rosales Argentina
El_Alamein_Egypt 51 30.929831 28.822037 El Alamein Egypt
Yorktown_VA 50 37.204536 -76.449808 Yorktown VA
Ahmadi_Kuwait 50 29.138804 48.074125 Ahmadi Kuwait
Burgas_Bulgaria 49 42.538729 27.306584 Burgas Bulgaria
Haldia_India 49 22.055516 88.108943 Haldia India
Santa_Monica_Uruguay 49 -34.855555 -54.731293 Santa Monica Uruguay
Wynnewood_OK 47 34.630416 -97.168685 Wynnewood OK
Villa_Elisa_Paraguay 47 -25.387093 -57.60326 Villa Elisa Paraguay
Quintero_Chile 47 -32.773028 -71.491856 Quintero Chile
Ardmore_OK 46 34.204304 -97.105704 Ardmore OK
Szazhalombatta_Hungary 45 47.299127 18.903806 Szazhalombatta Hungary
Portland_OR 45 45.674582 -122.721629 Portland OR
Philadelphia_PA 45 39.909191 -75.119152 Philadelphia PA
Commerce_City_CO 45 39.792233 -104.961914 Commerce City CO
Las_Vegas_NV 45 36.251698 -115.044709 Las Vegas NV
Patoka_Il 44 38.788557 -89.074593 Patoka Il
Huiyang_China 44 22.768981 114.591213 Huiyang China
Osorio_Brazil 44 -29.983298 -50.189688 Osorio Brazil
Yeosu_Korea 43 30.56966 47.304018 Yeosu Korea
Guamare_Brazil 43 -5.13595 -36.38418 Guamare Brazil
Campana_Argentina 43 -34.160986 -58.950065 Campana Argentina
Pipestone_Canada 42 49.752733 -101.241272 Pipestone Canada
Romeoville_IL 42 41.63699 -88.051658 Romeoville IL
Khazar_Azerbaijan 42 40.442114 50.299555 Khazar Azerbaijan
Kirkuk_Iraq 42 35.415489 44.215102 Kirkuk Iraq
Mazraat_el_Hsainiyeh_Lebanon 42 33.492242 35.354929 Mazraat el Hsainiyeh Lebanon
Great_Falls_MT 41 47.521696 -111.29649 Great Falls MT
A_Coruna_Spain 41 43.352732 -8.417477 A Coruna Spain
Cubatao_Brazil 41 -23.874468 -46.432743 Cubatao Brazil
Brandsen_Argentina 40 -35.270666 -58.254295 Brandsen Argentina
Korsakov_Russia 39 46.634855 142.91711 Korsakov Russia
Tikhoretsk_Russia 39 45.843163 40.196171 Tikhoretsk Russia
Diodia_Greece 38 38.052212 23.62157 Diodia Greece
Iran_Chabahar 38 25.291 60.615 Iran Chabahar
Pinghu_China 37 30.695219 121.269462 Pinghu China
Maceio_Brazil 37 -9.666242 -35.719547 Maceio Brazil
Sao_Sebastiao_Brazil 37 -23.800689 -45.407661 Sao Sebastiao Brazil
Sisak_Croatia 35 45.449842 16.40373 Sisak Croatia
Richmond_CA 35 37.940897 -122.399001 Richmond CA
Aracaju_Brazil 35 -11.00402 -37.066951 Aracaju Brazil
Guararema_Brazil 35 -23.454148 -45.978578 Guararema Brazil
Mielnik_Poland 34 52.363703 23.132606 Mielnik Poland
Dunkirk_France 34 51.061252 2.35745 Dunkirk France
La_Spezia_Italy 34 44.117471 9.879396 La Spezia Italy
Texas_City_TX 34 29.374012 -94.918698 Texas City TX
Campos_Eliseos_Brazil 34 -22.714354 -43.267478 Campos Eliseos Brazil
Odessa_Ukraine 32 46.501769 30.72655 Odessa Ukraine
Tarnos_France 32 43.530665 -1.495998 Tarnos France
Krotz_Springs_LA 32 30.524591 -91.749376 Krotz Springs LA
Sharjah_UAE 32 25.505249 55.506337 Sharjah UAE
Navapolatsk_Belarus 31 55.51623 28.559058 Navapolatsk Belarus
Jinzhou_China 31 40.820269 121.048683 Jinzhou China
Cabiunas_Brazil 31 -22.293106 -41.719494 Cabiunas Brazil
Ambes_France 30 45.013597 -0.566131 Ambes France
Qinhuangdao_China 30 39.950385 119.711283 Qinhuangdao China
Dongjiakou_China 29 35.592652 119.771118 Dongjiakou China
Ras_Tanura_repeat 28 26.641 50.157 Ras Tanura repeat
Fidalgo_Island_WA 27 48.482135 -122.558368 Fidalgo Island WA
Lannach_Austria 27 46.953897 15.345268 Lannach Austria
Vado_Ligure_Italy 27 44.326411 8.49567 Vado Ligure Italy
Ras_Tanura 25 26.637152 50.157497 Ras Tanura
Cremona_Italy 24 45.137735 9.9931 Cremona Italy
Gothenburg_Sweden 23 57.701954 11.842259 Gothenburg Sweden
Port_Allen_LA 23 30.528103 -91.175164 Port Allen LA
Bratislava_Slovakia 22 48.126972 17.181375 Bratislava Slovakia
Lacchiarella_Italy 22 45.336446 9.158258 Lacchiarella Italy
Beaumont_TX 22 30.063828 -94.069267 Beaumont TX
Venlo_Netherlands 21 51.37707 6.199341 Venlo Netherlands
Virje_Croatia 21 46.094906 17.01679 Virje Croatia
Ellesmere_Port_England 20 53.271427 -2.835887 Ellesmere Port England
Burnaby_Canada 19 49.302253 -122.857808 Burnaby Canada
Ingolstadt_Germany 19 48.789467 11.474317 Ingolstadt Germany
Philadelphia 19 39.910642 -75.199349 Philadelphia PA
Helensburgh_Scotland 18 56.11429 -4.833736 Helensburgh Scotland
Edinburgh_Scotland 17 56.002537 -3.412722 Edinburgh Scotland
Ust_Luga_Russia 16 59.743379 28.443213 Ust Luga Russia
Lake_Charles_LA 13 30.315113 -93.164959 Lake Charles LA
Palanga_Lithuania 10 55.922386 21.068389 Palanga Lithuania
Buenos_Aires 10 -34.649008 -58.349476 Buenos Aires
Richmond_California 7 37.942824 -122.35364 Richmond California
Grand_Bahama_The_Bahamas 3 26.628377 -78.499793 Grand Bahama The Bahamas
Kirkuk_Ceyhan 3 36.897212 35.908049 Kirkuk Ceyhan
Iran_Isfahan 3 32.658 51.6478 Iran Isfahan
Marsa_al_Brega 2 30.3939 19.6042 Marsa al Brega
Iran_Asaluyeh 2 27.535 52.556 Iran Asaluyeh
Salt_Lake_UT 1 40.813177 -112.28032 Salt Lake UT
Ras_Issa_Offshore_Terminal 1 15.145012 42.60813 Ras Issa Offshore Terminal
Bonny 1 4.433 7.167 Bonny Nigeria
target images lat lon admin1 admin2
Manila_Philippines 272 14.654653 120.951056 Manila Philippines
Valdez_AK 289 61.107111 -146.36732 Valdez AK
Auckland_New_Zealand 266 -36.858266 174.764205 Auckland New Zealand
Jakarta_Indonesia 242 -6.311999 107.099597 Jakarta Indonesia
Colon_Panama 226 9.427013 -79.90224 Colon Panama
Durban_Africa 234 -29.857526 31.025764 Durban Africa
Guayaquil_Ecuador 223 -2.252866 -79.904836 Guayaquil Ecuador
Manzanillo_Mexico 223 19.055627 -104.296645 Manzanillo Mexico
Las_Palmas_Spain 221 28.133578 -15.426099 Las Palmas Spain
Boston_MA 218 42.340836 -71.018347 Boston MA
Da_Nang_Vietnam 199 16.126391 108.219734 Da Nang Vietnam
Laem_Chabang_Thailand 199 13.163866 100.897194 Laem Chabang Thailand
Freetown_Sierra_Leone 196 8.471203 -13.211737 Freetown Sierra Leone
Keelung_Taiwan 190 25.146134 121.760194 Keelung Taiwan
Port_au_Prince_Haiti 190 18.54208 -72.352737 Port au Prince Haiti
Georgetown_Guyana 187 6.802494 -58.158186 Georgetown Guyana
Busan_Korea 185 35.167736 129.044624 Busan Korea
Monrovia_Liberia 179 6.327281 -10.787974 Monrovia Liberia
Valencia_Spain 179 39.447611 -0.329948 Valencia Spain
Visakhapatnam_India 177 17.703008 83.266924 Visakhapatnam India
Athens_Greece 173 37.95051 23.610848 Athens Greece
Tanger_Med_Morocco 173 35.877589 -5.510602 Tanger Med Morocco
Chittagong_Bangladesh 171 22.35158 91.823677 Chittagong Bangladesh
Ho_Chi_Minh_City_Vietnam 171 10.785896 106.805308 Ho Chi Minh City Vietnam
Namibe_Angola 170 -15.107198 12.173817 Namibe Angola
Port_Harcourt_Nigeria 170 4.767153 6.998418 Port Harcourt Nigeria
Lagos_Nigeria 174 6.548543 3.37765 Lagos Nigeria
Tyne_UK 166 54.986415 -1.461044 Tyne UK
Yangon_Myanmar 164 16.787819 96.150007 Yangon Myanmar
Dakar_Senegal 162 14.693519 -17.434107 Dakar Senegal
Buenaventura_Colombia 161 3.884096 -77.051697 Buenaventura Colombia
Callao_Peru 158 -11.905672 -77.128654 Callao Peru
Tacoma_WA 166 47.254678 -122.405628 Tacoma WA
Copenhagen_Denmark 157 55.692002 12.603036 Copenhagen Denmark
Kaohsiung_Taiwan 157 22.57141 120.3152 Kaohsiung Taiwan
Veracruz_Mexico 157 19.219045 -96.150068 Veracruz Mexico
Salalah_Oman 152 16.942405 54.006114 Salalah Oman
Lazaro_Cardenas_Mexico 152 17.943288 -102.181665 Lazaro Cardenas Mexico
Port_Said_Egypt 149 31.291062 32.288044 Port Said Egypt
Seattle_WA 143 47.589692 -122.332902 Seattle WA
Kandla_Port_India 141 23.008449 70.20442 Kandla Port India
Dutch_Harbor_Alaska 136 53.87538 -166.54 Dutch Harbor Alaska
Port_Klang_Malaysia 137 3.048697 101.396063 Port Klang Malaysia
Gwadar_Pakistan 132 25.134393 62.336737 Gwadar Pakistan
Pointe_Noire_Congo 128 -4.763122 11.851526 Pointe Noire Congo
Porto_Marghera_Venice_Italy 128 45.472493 12.24675 Porto Marghera Venice Italy
Acajutla_El_Salvador 126 13.581268 -89.820606 Acajutla El Salvador
Gorgon_LNG_Australia 125 -20.715215 115.491562 Gorgon LNG Australia
La_Union_El_Salvador 123 13.327355 -87.841223 La Union El Salvador
Brunswick_GA 124 31.186842 -81.52658 Brunswick GA
Lampedusa_Italy 120 35.507342 12.599516 Lampedusa Italy
Duqm_Oman 113 19.659441 57.69746 Duqm Oman
Tanjung_Pelepas_Malaysia 110 1.346662 103.547074 Tanjung Pelepas Malaysia
New_York_NY 109 40.627312 -74.18668 New York NY
Guangzhou_China 108 23.013885 113.54101 Guangzhou China
Marseille_France 106 43.329279 5.35847 Marseille France
Chimbote_Peru 92 -9.043421 -78.58512 Chimbote Peru
Alexandria_Egypt 85 31.20924 29.913304 Alexandria Egypt
Honolulu_HI 85 21.313283 -157.880381 Honolulu HI
Nagoya_Japan 84 35.110514 136.898269 Nagoya Japan
Binhai_China 82 39.004441 117.727578 Binhai China
Strait_of_Hormuz 80 26.740227 56.56042 Strait of Hormuz
Geoje_Island_Korea 78 34.871884 128.631643 Geoje Island Korea
Algeciras_Spain 75 36.145454 -5.326781 Algeciras Spain
Bremerhaven_Germany 71 53.578868 8.549197 Bremerhaven Germany
Ensenada_Mexico 70 31.862573 -116.607021 Ensenada Mexico
Montreal_Canada 64 45.484349 -73.568058 Montreal Canada
Helsinki_Finland 62 60.16821 24.93913 Helsinki Finland
Shanghai_China 62 31.358233 121.646626 Shanghai China
Gioia_Tauro_Italy 61 38.458311 15.908422 Gioia Tauro Italy
Sydney_Australia 60 -33.795698 151.209693 Sydney Australia
Nampo_Korea 59 38.749647 125.327961 Nampo Korea
Melbourne_Australia 56 -37.843179 144.924132 Melbourne Australia
Istanbul_Turkey 55 41.008437 28.975669 Istanbul Turkey
Khor_Fakkan_UAE 53 25.353002 56.368815 Khor Fakkan UAE
Chennai_India 50 13.03828 80.22095 Chennai India
St_Petersburg_Russia 49 59.99148 30.304228 St Petersburg Russia
La_Spezia_Italy 48 44.103306 9.823495 La Spezia Italy
Haiphong_Vietnam 47 20.871558 106.712444 Haiphong Vietnam
Bangkok_Thailand 46 13.697423 100.579843 Bangkok Thailand
Marsaxlokk_Malta 45 35.827189 14.54393 Marsaxlokk Malta
Barcelona_Spain 42 41.385234 2.179632 Barcelona Spain
Yingkou_China 42 40.695831 122.25429 Yingkou China
Colombo_Sri_Lanka 40 6.95063 79.843203 Colombo Sri Lanka
Norfolk_VA 40 36.888434 -76.310441 Norfolk VA
Kingston_Jamaica 39 17.987818 -76.8212 Kingston Jamaica
Buenos_Aires_Argentina 38 -34.561466 -58.378503 Buenos Aires Argentina
Charleston_SC 37 32.911794 -79.957492 Charleston SC
Dubai_UAE 37 24.967792 55.049313 Dubai UAE
Balboa_Panama 36 8.953886 -79.568479 Balboa Panama
Calais_France 36 50.98028 1.9083 Calais France
Iran_Bandar_Anzali 36 37.4813 49.461 Iran Bandar Anzali
Taichung_Taiwan 36 24.298746 120.531505 Taichung Taiwan
Mumbai_India 35 19.105774 72.862753 Mumbai India
Ghent_Belgium 34 51.3472 3.8103 Ghent Belgium
Jeddah_Saudi_Arabia 34 21.504974 39.157837 Jeddah Saudi Arabia
Osaka_Japan 34 34.683845 135.436689 Osaka Japan
Vancouver_Canada 34 49.261493 -123.116899 Vancouver Canada
Felixstowe_England 66 51.96126 1.350327 Felixstowe England
Kobe_Japan 33 34.705216 135.324828 Kobe Japan
Mundra_India 33 22.744541 69.692481 Mundra India
Nanjing_China 33 32.283072 119.131344 Nanjing China
Karachi_Pakistan 32 24.845342 66.989209 Karachi Pakistan
Shantou_China 32 23.357345 116.650354 Shantou China
Suez_Canal 32 30.624327 32.320794 Suez Canal
Incheon_Korea 31 37.451646 126.703605 Incheon Korea
Santos_Brazil 31 -23.866572 -46.376239 Santos Brazil
Mersin_Turkey 30 36.795973 34.645417 Mersin Turkey
Savannah_GA 30 32.111032 -81.129171 Savannah GA
Yantai_China 30 37.572198 121.401446 Yantai China
Yokohama_Japan 30 35.527762 139.785657 Yokohama Japan
Dammam_Saudi_Arabia 28 26.52888 50.208371 Dammam Saudi Arabia
Donggang_China 28 39.86025 124.161761 Donggang China
Southhampton_England 28 50.908367 -1.40372 Southhampton England
Genoa_Italy 25 44.435633 8.770178 Genoa Italy
Long_Beach_CA 25 33.761376 -118.191332 Long Beach CA
Fuzhou_China 23 26.14722 119.5735 Fuzhou China
Singapore_Singapore 23 1.260756 103.885993 Singapore Singapore
Yeosu_Korea 23 34.755264 127.662258 Yeosu Korea
Dongguan_China 22 22.867532 113.55996 Dongguan China
Bruges_Zeebrugge_Belgium 21 51.365043 3.198201 Bruges Zeebrugge Belgium
Zhongshan_China 21 22.579549 113.530395 Zhongshan China
Shahid_Rajaee_Iran 20 27.15033 56.215466 Shahid Rajaee Iran
Tianjin_China 19 39.06263 117.763064 Tianjin China
Rizhao_China 17 35.405148 119.565508 Rizhao China
Antwerp_Belgium 16 51.267021 4.360235 Antwerp Belgium
Hong_Kong_China 15 22.361958 114.151884 Hong Kong China
Lianyungang_China 15 34.781528 119.380943 Lianyungang China
Amsterdam_Netherlands 13 52.35356 4.88988 Amsterdam Netherlands
Shenjia_Bay_Island_China 12 30.60294 122.126502 Shenjia Bay Island China
Le_Havre_France 11 49.498062 0.107009 Le Havre France
Shenzhen_China 11 22.57361 114.055824 Shenzhen China
Sestri_Levante_Italy 10 44.256764 9.428393 Sestri Levante Italy
Beaufort_Inlet 9 34.692249 -76.670124 Beaufort Inlet
Port_Elizabeth 8 -33.963497 25.636113 Port Elizabeth
Taicang_China 8 31.740298 121.113785 Taicang China
Iran_Bandar_e_Lengeh 6 26.55 54.8862 Iran Bandar e Lengeh
Mundra_Port_India_Adani 6 22.746928 69.693746 Mundra Port India Adani
Napoli_Italy 6 40.844463 14.279043 Napoli Italy
Taranto_Italy 6 40.482951 17.198543 Taranto Italy
Port_Kembla_AU 4 -34.44903 150.889772 Port Kembla AU
Pyeongtaek_Korea 4 37.00222 126.981349 Pyeongtaek Korea
Balhaf_LNG_Terminal 3 13.982594 48.180103 Balhaf LNG Terminal
Beirut_Lebanon 3 33.9051063 35.5347385 Beirut Lebanon
Busan_Korea 3 35.154044 129.052573 Busan Korea
Port_Matilda_PA 3 40.798296 -78.057088 Port Matilda PA
Ports_of_Grimsby_Immingham_and_Killingholme_U_K 3 53.677745 -0.264966 Ports of Grimsby Immingham and Killingholme U K
Dawei_Myanmar 2 14.084408 98.014634 Dawei Myanmar
Visakhapatnam_India 2 17.675255 83.222346 Visakhapatnam India
Gloucester_Point 2 42.61057 -70.6551 Gloucester Point
Ulsan_Korea 2 35.544941 129.256343 Ulsan Korea
Port_Mathurin 1 -19.6833 63.4166985 Port Mathurin
Tromso_Norway 1 69.64882 18.957479 Tromso Norway
target images lat lon admin1 admin2
Serris_France 214 48.868719 2.7818 Serris France
Kapolei_HI 206 21.320702 -158.09885 Kapolei HI
Marinette_WI 204 45.098802 -87.619473 Marinette WI
Williamsburg_VA 204 37.235431 -76.643348 Williamsburg VA
Montreal_Canada 191 45.53464 -73.520947 Montreal Canada
Austell_GA 159 33.769249 -84.549612 Austell GA
Allenton_MO 158 38.511209 -90.674339 Allenton MO
Raleigh_NC 141 35.854322 -78.521675 Raleigh NC
Winnipeg_Canada 138 49.903595 -97.254902 Winnipeg Canada
San_Diego_CA 134 32.743137 -117.203601 San Diego CA
Tokyo_Japan 129 35.662308 139.914391 Tokyo Japan
Tampa_FL 128 28.046622 -82.419252 Tampa FL
Reno_NV 114 39.513594 -119.785978 Reno NV
San_Antonio_TX 110 29.608383 -98.603845 San Antonio TX
Clark_Nevada 91 39.541984 -119.469583 Clark Nevada
Corpus_Christi_TX 86 27.887631 -97.270839 Corpus Christi TX
Pyeongtaek_South Korea 75 36.977097 126.820459 Pyeongtaek South Korea
Anaheim_CA 72 33.805836 -117.892034 Anaheim CA
Fremont_CA 66 37.493965 -121.943059 Fremont CA
Hong_Kong_China 64 22.361958 114.151884 Hong Kong China
Orlando_FL 60 28.473219 -81.425399 Orlando FL
Bangalore_India 29 13.070634 77.590215 Bangalore India
Shanghai_China 29 31.146456 121.664262 Shanghai China
Chonburi_Thailand 22 13.426637 101.012371 Chonburi Thailand
Jiamusi_China 15 46.798102 130.319314 Jiamusi China
Danesmoor_UK 7 53.16188 -1.399256 Danesmoor UK
Gurnee_IL 7 42.370023 -87.935962 Gurnee IL
Jackson_NJ 6 40.141011 -74.439221 Jackson NJ
Agawam_MA 3 42.036426 -72.617565 Agawam MA
Galesburg_IL 3 40.949964 -90.371675 Galesburg IL
Waterloo_IA 3 42.492341 -92.342757 Waterloo IA
Alliance_NE 2 42.095741 -102.870236 Alliance NE
Brea_CA 2 33.91517 -117.88646 Brea CA
Milpitas_CA 1 37.407935 -121.879411 Milpitas CA
target images lat lon admin1 admin2
Rukoli_Rwanda 200 -2.084585 30.311285 Rukoli Rwanda
Kauriya_Bihar_India 168 26.152644 84.693303 Kauriya Bihar India
Jarvis_Island_US 167 -0.373322 -159.997113 Jarvis Island US
Webuye_Kenya 160 0.59881 34.779407 Webuye Kenya
Bentiu_South Sudan 158 9.230058 29.800709 Bentiu South Sudan
Yamalsky_District_Russia 152 68.368583 69.971833 Yamalsky District Russia
Granadilla_Tenerife 151 28.118925 -16.576738 Granadilla Tenerife
South_Ucayali_Peru 151 -10.569936 -72.88197 South Ucayali Peru
East_Kotawiaringin_Borneo_Indonesia 147 -2.357677 112.835523 East Kotawiaringin Borneo Indonesia
Kraul_Mountains_Antarctica 143 -73.345012 -13.910743 Kraul Mountains Antarctica
West_Papua_Indonesia 139 -1.920246 133.05528 West Papua Indonesia
Lizard_Island 138 -14.6709 145.4644 Lizard Island
Ache_Sumatra_Indonesia 131 4.570869 96.64455 Ache Sumatra Indonesia
Busesa_Uganda 124 0.476752 33.574886 Busesa Uganda
Rudewa_Tanzania 123 -6.66 37.165 Rudewa Tanzania
Florida_Bolivia 122 -12.045889 -68.581719 Florida Bolivia
East_Rennell_Solomon Islands 119 -11.733854 160.410708 East Rennell Solomon Islands
Purma_Fagui_Peru 119 -2.63237 -72.169689 Purma Fagui Peru
Rupununi_Guyana 116 3.76404 -59.085957 Rupununi Guyana
Dimbwe_Zambia 114 -17.2483 26.9103 Dimbwe Zambia
Zaatari_Jordan 114 32.295266 36.323606 Zaatari Jordan
Koch_South Sudan 112 8.594294 29.993172 Koch South Sudan
Kalaoa_Hawaii 101 19.75508862 -156.061328 Kalaoa Hawaii
Pearl_and_Hermes_Atoll_Hawaii 98 27.9779739 -175.7395893 Pearl and Hermes Atoll Hawaii
Amahai_Indonesia 93 -3.335086 128.931875 Amahai Indonesia
Madre_de_Dios_Peru 91 -12.984924 -70.018122 Madre de Dios Peru
Burera_Rwanda 90 -1.374817 29.812374 Burera Rwanda
Karare_Kenya 88 2.153487 37.858872 Karare Kenya
New_Delhi 87 28.619287 77.234237 New Delhi
Haruku_Indonesia 86 -3.502574 128.434354 Haruku Indonesia
Isseneru_Guyana 84 6.467282 -60.332639 Isseneru Guyana
Taoudenni_Mali 82 22.675202 -3.980358 Taoudenni Mali
Nigerian_Refugee_Camp_Maiduguri 81 11.790059 13.11488 Nigerian Refugee Camp Maiduguri
Mayendit_South Sudan 77 8.134999833 29.995 Mayendit South Sudan
Micronesia_Micronesia 77 7.031 158.22 Micronesia Micronesia
Puthukkudiyiruppu_Sri Lanka 77 9.336527 80.689414 Puthukkudiyiruppu Sri Lanka
Morocco_Daa 74 33.378365 -5.231947 Morocco Daa
Bardere_Somalia 71 2.337994 42.280612 Bardere Somalia
Marudi_Guyana 71 2.285347 -59.045066 Marudi Guyana
Wau_South Sudan 71 7.7015 27.9884 Wau South Sudan
Nigeria_Monguno 69 12.69012 13.616804 Nigeria Monguno
Qayyarah_Iraq 69 35.847211 43.297688 Qayyarah Iraq
Kauro_Kenya 67 1.048679 37.699854 Kauro Kenya
Baker Island_U.S. 66 0.21687987 -176.4887584 Baker Island U.S.
El_Nino_Brazil 66 -2.6082 -60.1999 El Nino Brazil
Algheden_Eritrea 65 15.466011 37.100145 Algheden Eritrea
Bama_Nigeria 65 11.55015 13.683749 Bama Nigeria
Keshero_Democratic Republic of Congo 65 -1.622312 29.156266 Keshero Democratic Republic of Congo
Leer_South Sudan 63 8.29677 30.14734 Leer South Sudan
Kanton_Island_Kiribati 60 -2.72879748 -171.7673777 Kanton Island Kiribati
Howland_Island_U.S. 59 0.83240859 -176.6257844 Howland Island U.S.
Az_Zabdani_Madaya 58 33.703963 36.10742694 Az Zabdani Madaya
Nikumaroro_Island_Kiribati 56 -4.640062 -174.5807186 Nikumaroro Island Kiribati
Dikwa_Nigeria 55 12.078056 13.91933383 Dikwa Nigeria
Jambi_Indonesia 53 -1.635916 103.60565 Jambi Indonesia
Minami_Hiyoshi_Japan 53 23.5 141.935 Minami Hiyoshi Japan
Grand_Teton_WY 52 43.7904282 -110.6817627 Grand Teton WY
Isiolo_Kenya 52 0.352908 37.584581 Isiolo Kenya
Nigeria_Damasak 52 13.105 12.50666 Nigeria Damasak
Didymoi_Egypt 50 25.754439 33.394863 Didymoi Egypt
Rukban_Syria 50 33.298583 38.657 Rukban Syria
Marib_Yemen 50 15.467058 45.322926 Marib Yemen
Kisarawe_Tanzania 49 -7.203952 38.664036 Kisarawe Tanzania
Manaq_Syria 49 36.52441683 37.04942783 Manaq Syria
Al_Wadi_Saudi Arabia 49 25.632679 39.2396 Al Wadi Saudi Arabia
Byanun_Hardatnin 47 36.3511 37.075 Byanun Hardatnin
Chigumbwe_Zambia 47 -17.350524 27.350522 Chigumbwe Zambia
Rawaki_Kiribati 46 -3.7432908 -170.706992 Rawaki Kiribati
Mosul_Iraq 42 36.337739 43.143532 Mosul Iraq
Foah_Kafraya 40 35.98499983 36.689 Foah Kafraya
Fukushima_Japan 38 37.756794 140.480737 Fukushima Japan
Merille_Kenya 38 1.417819 37.723343 Merille Kenya
Vaquita_Refuge_Mexico 38 31.442871 -114.395287 Vaquita Refuge Mexico
Denali_Alaska 37 63.1148002 -151.1947945 Denali Alaska
Pugnido_Ethiopia 35 7.715402 34.526536 Pugnido Ethiopia
Maiduguri_Nigeria 34 11.894 13.041 Maiduguri Nigeria
Kilinochchi_Sri_Lanka 33 9.730853 80.287816 Kilinochchi Sri Lanka
Shahat_and_Susah_Libya 33 32.818586 21.857589 Shahat and Susah Libya
Yola_Nigeria 33 9.224 12.434 Yola Nigeria
Egypt_Samut_forts 31 24.832546 33.910919 Egypt Samut forts
Palmyra_Syria 29 34.554444 38.258611 Palmyra Syria
Kamna_Yemen 29 16.168161 44.69001517 Kamna Yemen
Changa_Zambia 27 -9.809643 32.52004 Changa Zambia
Damaturu_Nigeria 27 11.786 11.912 Damaturu Nigeria
Ucayali_Province_Peru 27 -7.827719 -75.252655 Ucayali Province Peru
Nimrud_Iraq 26 36.0988 43.3285 Nimrud Iraq
Mosul_Iraq 24 36.364416 43.393195 Mosul Iraq
Al_Raqqah_Syria 23 35.958112 39.009621 Al Raqqah Syria
Kaanapali_Hawaii 23 20.821917 -156.638751 Kaanapali Hawaii
Kule_Ethiopia 23 11.73562 39.643096 Kule Ethiopia
Santa_Rosa_Peru 23 -11.808613 -77.165693 Santa Rosa Peru
Inabba_Yemen 22 16.1271666 44.9072127 Inabba Yemen
Sabratha_Libya 21 32.802928 12.485886 Sabratha Libya
Kankesanturai_Sri Lanka 20 9.809882 80.046225 Kankesanturai Sri Lanka
As_Sawda_Yemen 19 16.168997 44.621126 As Sawda Yemen
Chaposwa_Zambia 18 -16.720763 27.96317 Chaposwa Zambia
Daadab_Kenya 18 0.204834 40.284033 Daadab Kenya
Rose_Atoll_National_Monument_U.S. 18 -14.544 -168.1564 Rose Atoll National Monument U.S.
Pooneryn_Sri Lanka 17 9.834433 80.088335 Pooneryn Sri Lanka
Ptolemais_Libya 17 32.70071 20.94621 Ptolemais Libya
Taiz_Yemen 16 13.65942583 43.99370183 Taiz Yemen
Bryce_Canyon_UT 15 37.5930377 -112.1892782 Bryce Canyon UT
North_Ucayali_Peru 15 -8.393784 -74.151653 North Ucayali Peru
Orona_Kiribati 15 -4.4769223 -172.1126015 Orona Kiribati
Bille_Nigeria 14 4.568167 6.892979 Bille Nigeria
Deir_ez_Zor_Syria 14 35.344922 40.119783 Deir ez Zor Syria
Orpheus_Island_Australia 14 -18.617429 146.495837 Orpheus Island Australia
Mari_Syria 13 34.5515 40.8885 Mari Syria
Marib_Sirwah_Yemen 13 15.451998 45.01816 Marib Sirwah Yemen
Swains_American Samoa 12 -11.0565 -171.0781 Swains American Samoa
Old_Fangak_South Sudan 11 9.071521 30.883847 Old Fangak South Sudan
Treemetrics_Ireland 11 51.880858 -9.205312 Treemetrics Ireland
Karachi_Pakistan 10 24.845342 66.989209 Karachi Pakistan
King_of_Prussia_Mall_PA 10 40.089075 -75.387966 King of Prussia Mall PA
Shenandoah_National_Park_VA 10 38.8362 -78.203978 Shenandoah National Park VA
Damasak_Ngala_Nigeria 12 13.105 12.50666 Damasak Ngala Nigeria
Hadalat_Border_Syria 9 32.860248 37.816543 Hadalat Border Syria
Nikkou_Kaizan_Philippine Sea 9 23.07833 142.3255 Nikkou Kaizan Philippine Sea
Chetimari_Niger 8 13.20325 12.43711 Chetimari Niger
Dupas_Ethiopia 8 9.10405 38.66801 Dupas Ethiopia
Kampala_Uganda 8 0.315017 32.590669 Kampala Uganda
Pucaurquillo_Peru 8 -3.260767 -71.99269 Pucaurquillo Peru
El_Nino_Brazil 8 -2.6082 -60.1999 El Nino Brazil
Grand_Canyon_AZ 7 36.1069406 -112.1152587 Grand Canyon AZ
Mall_of_America_MN 7 44.854865 -93.242215 Mall of America MN
Tembe_Brazil 6 -2.684511 -48.273701 Tembe Brazil
Jadfir_Ibn_Munaykhir_Yemen 6 15.8891007 44.932735 Jadfir Ibn Munaykhir Yemen
Bora_Bora_French Polynesia 5 -16.528432 -151.768806 Bora Bora French Polynesia
Bungoma_Kenya 5 0.56789 34.51887 Bungoma Kenya
DiffaNord_Niger 5 13.378902 12.690149 DiffaNord Niger
Helen_Palau 5 3.069522 131.839222 Helen Palau
Jerico_Peru 5 -8.26009 -75.067676 Jerico Peru
Masisea_Peru 5 -8.607497 -74.314273 Masisea Peru
Mimami_Hiyoshi_Kaizan_Philippine Sea 5 23.5 141.935 Mimami Hiyoshi Kaizan Philippine Sea
Samburu_strip_UNKNOWNLOCATION 5 Samburu strip UNKNOWNLOCATION
Afrin_Syria 5 36.741118 36.947212 Afrin Syria
Seed_Tanzania 5 -8.76352 34.59511 Seed Tanzania
Cyrene_Libya 4 32.804631 21.850164 Cyrene Libya
Hermosillo_Mexico 4 29.196065 -111.650243 Hermosillo Mexico
Kabelawa_Niger 4 14.05455 12.9975 Kabelawa Niger
Puerto_Maldonado_Peru 4 -12.592782 -69.195358 Puerto Maldonado Peru
Rocky_Mountain_National_Park_CO 4 40.3427932 -105.6858276 Rocky Mountain National Park CO
Sinjar_Iraq 4 36.326522 41.852422 Sinjar Iraq
South_Loreto_Peru_UNKNOWNLOCATION 4 South Loreto Peru UNKNOWNLOCATION
Angola_Area_UNKNOWNLOCATOIN 3 Angola Area UNKNOWNLOCATOIN
Cape_Town_South Africa 3 -33.924054 18.424203 Cape Town South Africa
Death_Valley_CA 3 36.5053891 -117.0815965 Death Valley CA
Del_Amo_Fashion_Center_CA 3 33.832368 -118.352782 Del Amo Fashion Center CA
Fukushima_Japan 3 38.44576 141.476568 Fukushima Japan
Pulau_Padang_II_Malaysia 3 1.13406 102.305659 Pulau Padang II Malaysia
Ma_in_Yemen 3 16.13636 44.8037 Ma in Yemen
Kurokamicho_Japan 2 31.5833 130.6833 Kurokamicho Japan
Gloucester_MA 2 42.61057 -70.6551 Gloucester MA
Mayawana_Persada_Indonesia 2 -6.170874 106.813131 Mayawana Persada Indonesia
Kenya_UNKNOWNLOCATION 2 Kenya UNKNOWNLOCATION
Kilifi_Kenya 2 -3.501974 39.898009 Kilifi Kenya
Nineveh_Iraq 2 36.354029 43.168799 Nineveh Iraq
Ramtha_Jordan 2 32.593448 35.956214 Ramtha Jordan
Serengetti_Tanzania 2 -2.029598 34.774633 Serengetti Tanzania
Sichuan_Forest_China 2 30.520556 102.912222 Sichuan Forest China
Sumatra_Indonesia 2 3.904005 96.38436 Sumatra Indonesia
Taleqan_Afghanistan 2 36.735991 69.534381 Taleqan Afghanistan
Tamshiyacu_Peru 2 -4.001506 -73158807 Tamshiyacu Peru
Yosemite_CA 2 37.9006 -119.539 Yosemite CA
Adindo_II_UNKNOWNLOCATION 1 Adindo II UNKNOWNLOCATION
Adindo_III_UNKNOWNLOCATION 1 Adindo III UNKNOWNLOCATION
Azaz_Syria 1 36.682139 37.19359 Azaz Syria
Hobet_Mine_WV 1 38.091965 -81.982311 Hobet Mine WV
Kaohsiung_Taiwan 1 38.258578 -81.617369 KD Mine WV
KD_Mine_WV 1 Mali UNKNOWNLOCATION
Mali_UNKNOWNLOCATION 1 2.333627 37.993855 Marsabit Kenya
Marsabit_Kenya 1 41.63679 -70.9135 New Bedford MA
New_Bedford_MA 1 4.388327 6.251372 Niger Delta Nigeria
Niger_Delta_Nigeria 1 Peru oil palm plantation UNKNOWNLOCATION
Peru_oil_palm_plantation_UNKNOWNLOCATION 1 Peru selective logging UNKNOWNLOCATION
Peru_selective_logging_UNKNOWNLOCATION 1 Peru windfall UNKNOWNLOCATION
Peru_windfall_UNKNOWNLOCATION 1 -20.139027 57.472176 Port Louis Mauritius
Port_Louis_Mauritius 1 37.230808 -81.549011 Red Fox Surface Mine WV
Red_Fox_Surface_Mine_WV 1 33.298583 38.657 Rubkan Syria
Rubkan_Syria 2 0.599901 37.529092 Samburu Kenya
Samburu_Kenya 1 40.688997 -80.952851 Seven Ranges OH
Seven_Ranges_OH 1 Sri Lanka Area UNKNOWNLOCATION
Sri_Lanka_Area_UNKNOWNLOCATION 1 32.28118753 36.8383639 Deir al Kahf Jordan
Deir_al_Kahf_Jordan 1 34.75006 40.7201 Dura Europos Syria
Dura_Europos_Syria 1 0.682981 34.185933 Tororo Uganda
Tororo_Uganda 1 31.442871 -114.395287 Vaquita Refuge Mexico
target images lat lon admin1 admin2
Tullamarine_VIC_Australia 254 -37.714486 144.879163 Tullamarine VIC Australia
Jakarta_Indonesia 242 -6.311999 107.099597 Jakarta Indonesia
Villadangos_del_Paramo_Spain 214 42.533957 -5.753913 Villadangos del Paramo Spain
Galati_Romania 200 45.444003 28.09091 Galati Romania
Xuzhou_Jiangsu_China 163 34.289841 117.24249 Xuzhou Jiangsu China
Djibouti_Djibouti 150 11.596812 43.112691 Djibouti Djibouti
Antalya_Turkey 148 36.845594 30.600271 Antalya Turkey
Urumqi_China 144 43.820579 87.614561 Urumqi China
Hirakata_City_Japan 137 34.826891 135.664168 Hirakata City Japan
Turku_Finland 137 60.456963 22.127815 Turku Finland
Ramos_Arizpe_Mexico 136 25.587894 -100.906115 Ramos Arizpe Mexico
Tosno_Russia 136 59.566451 30.82137 Tosno Russia
Dingolfing_Germany 135 48.647681 12.467315 Dingolfing Germany
Valence_France 125 44.329722 4.732222 Valence France
Spartansburg_SC 124 34.898666 -82.174638 Spartansburg SC
Brighton_CO 121 40.022787 -104.805985 Brighton CO
Monterrey_Mexico 118 25.732901 -100.520987 Monterrey Mexico
Baily_Yard_NE 113 41.144279 -100.829398 Baily Yard NE
Maharashtra_India 108 18.676335 74.116704 Maharashtra India
Plaeng_Yao_Thailand 102 13.602861 101.341754 Plaeng Yao Thailand
Rauma_Finland 98 61.124917 21.458913 Rauma Finland
Three_Gorges_Dam_China 91 30.828026 110.998605 Three Gorges Dam China
La_Hague_France 89 49.678494 -1.879295 La Hague France
Memphis_TN 75 34.927791 -89.957781 Memphis TN
Windsor_CO 69 40.476499 -104.901721 Windsor CO
Siberia_Pipeline_UNKNOWNLOCATION 54 Siberia Pipeline UNKNOWNLOCATION
Narbonne_France 53 43.214704 2.979904 Narbonne France
Pueblo_CO 49 38.271995 -104.625887 Pueblo CO
Emden_Germany 45 53.360859 7.193922 Emden Germany
Nigeria_Pipeline 26 5.605021 7.450727 Nigeria Pipeline
Itajai_Brazil 25 -26.889355 -48.680131 Itajai Brazil
Two_Harbors_MN 25 47.021137 -91.680395 Two Harbors MN
Paranagua_Brazil 24 -25.51909 -48.526282 Paranagua Brazil
Halifax_Canada 23 44.702841 -63.640208 Halifax Canada
Providence_RI 22 41.800286 -71.376732 Providence RI
Escanaba_MI 21 45.773692 -87.068081 Escanaba MI
Superior_WI 21 46.760725 -92.1454 Superior WI
Sandusky_OH 20 41.45059 -82.734901 Sandusky OH
San_Juan_Puerto_Rico 19 18.440368 -66.096582 San Juan Puerto Rico
Altamira_Mexico 18 22.508889 -97.875499 Altamira Mexico
Sao_Luis_Brazil 18 -2.573017 -44.354414 Sao Luis Brazil
Marcus_Hook_PA 17 39.876884 -75.489623 Marcus Hook PA
Limon_Costa_Rica 16 10.019646 -83.022712 Limon Costa Rica
Port_Hueneme_CA 15 34.153261 -119.192367 Port Hueneme CA
Toledo_OH 15 41.685387 -83.467098 Toledo OH
Wilmington_NC 15 34.191956 -77.94477 Wilmington NC
Ashtabula_OH 14 41.90211 -80.786381 Ashtabula OH
Cleveland_OH 14 41.509769 -81.728155 Cleveland OH
Conneaut_OH 14 41.96161 -80.544824 Conneaut OH
Brunsbuttel_Germany 13 53.902845 9.173304 Brunsbuttel Germany
Kiel_Germany 13 54.33411 10.154502 Kiel Germany
Lubeck_Germany 13 53.920399 10.816316 Lubeck Germany
Mariel_Cuba 13 22.994859 -82.764041 Mariel Cuba
San_Antonio_Chile 13 -33.594451 -71.609459 San Antonio Chile
Butterworth_Malaysia 12 5.447318 100.398366 Butterworth Malaysia
Galveston_TX 12 29.308232 -94.805335 Galveston TX
Kitakyushu_Japan 12 33.920607 130.855462 Kitakyushu Japan
Kuwait_City_Kuwait 12 29.348498 47.918471 Kuwait City Kuwait
Daesan_South_Korea 11 37.079944 126.518204 Daesan South Korea
Pohang_South_Korea 11 36.017175 129.40357 Pohang South Korea
Port_Everglades_FL 11 26.070892 -80.14054 Port Everglades FL
Beirut_Lebanon 10 33.893708 35.521396 Beirut Lebanon
Dampier_Australia 10 -20.580308 116.783942 Dampier Australia
Naples_Italy 10 40.841488 14.281126 Naples Italy
Pascagoula_MS 9 30.339321 -88.499878 Pascagoula MS
Sumgayit_Azerbaijan 9 40.596226 49.613245 Sumgayit Azerbaijan
New_Orleans_LA 8 29.941198 -90.047025 New Orleans LA
Pakistan_Pipeline_UNKNOWNLOCATION 7 Pakistan Pipeline UNKNOWNLOCATION
Freeport_TX 6 29.022084 -95.414017 Freeport TX
Rail_Terminal_Illinois_UNKNOWNLOCATION 6 Rail Terminal Illinois UNKNOWNLOCATION
Sui_Northern_Gas_Pakistan 6 31.500944 73.096842 Sui Northern Gas Pakistan
Brunswick_GA 4 31.186842 -81.52658 Brunswick GA
Power_of_Siberia 4 55.073783 73.686295 Power of Siberia
Hanover_Germany 3 52.357235 9.707517 Hanover Germany
Marathon_Pipeline_Illinois 3 40.07 -88.39 Marathon Pipeline Illinois
Sudan_Pipeline_UNKNOWNLOCATION 3 Sudan Pipeline UNKNOWNLOCATION
Tennessee_Pipeline_UNKNOWNLOCATION 2 Tennessee Pipeline UNKNOWNLOCATION
Hannover_Germany 1 52.375536 9.73217 Hannover Germany
Houston_and_BP_Pipeline 1 29.720967 -95.065256 Houston and BP Pipeline
Hyundai_Delamar_Dry_Lake_Nevada 1 37.318714 -114.948752 Hyundai Delamar Dry Lake Nevada
Seibu_Komugi_Japan 1 39.3334 140.996 Seibu Komugi Japan
Kashiwazaki_Kariwa_NPP_Japan 1 37.421309 138.595629 Kashiwazaki Kariwa NPP Japan
Kelamayi_China 1 45.57412 84.892472 Kelamayi China
Mexico_pump_station_UNKNOWNLOCATION 1 Mexico pump station UNKNOWNLOCATION
Mina_al_Ahmadi_Kuwait 2 29.08461 48.065426 Mina al Ahmadi Kuwait
Ooi_NPP_Japan 1 35.540625 135.652033 Ooi NPP Japan
Porto_Marghera-Venice_Italy 1 45.462382 12.26665 Porto Marghera-Venice Italy
Spartansburg_Factory_UNKNOWNLOCATION 1 Spartansburg Factory UNKNOWNLOCATION
Display the source blob
Display the rendered blob
Raw
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Display the source blob
Display the rendered blob
Raw
Loading
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