{"version":3,"sources":["components/MapModal.js","components/IntroModal.js","components/CopyUrlBtn.js","images/Project1_TechnicalSummary.pdf","images/country.jpg","images/UG1-ag-land.jpg","images/UG2-connectivity.jpg","images/UG3-pvr.jpg","images/UG4-rank.jpg","images/UG5-county.jpg","components/Navbar.js","components/Map1Components/Map1Control.js","components/Map1Components/Legend.js","components/Map3Components/LegendResistance.js","components/Map1Components/LegendAgLands.js","components/Map1Components/LegendPVR.js","images/con-pvr-legend.png","components/Map1Components/LegendCounty.js","images/con-pvr-legend-county.png","components/Map1Components/LegendCounty2.js","images/whiteAlLogo.png","components/Logo.js","components/mapboxLogo.js","images/mapbox-logo-white.png","components/Map1Components/Map1.js","pages/Project1.js","images/Project2_TechnicalSummary.pdf","images/architecture.jpg","components/Map2Components/Map2Control.js","components/Map2Components/Map2StateStyle.js","components/Map2Components/LegendAg.js","components/Map2Components/LegendTransport.js","components/Map2Components/LegendUrban.js","components/Map2Components/Map2.js","components/Map2Components/Map2Plots.js","pages/Project2.js","images/Disturbance.png","images/Project3_TechnicalSummary.pdf","components/Map3Components/Map3Control.js","components/Map3Components/LegendCanopyCvr.js","components/Map3Components/LegendBasalArea.js","components/Map3Components/LegendBiomass.js","components/Map3Components/LegendForestType.js","components/Map3Components/Map3FireStyle.js","components/Map3Components/Map3.js","components/Map3Components/Map3Plots.js","pages/Project3.js","App.js","theme.js","index.js"],"names":["ModalInfo","props","useState","modal","setModal","toggle","style","backgroundColor","color","border","paddingLeft","onClick","Modal","marginTop","padding","fullScreen","size","centered","scrollable","isOpen","ModalHeader","zIndex","ModalTitle","ModalBody","height","ModalFooter","CopyUrlBtn","url","window","location","href","text","Button","e","swal","marginLeft","useStyles","makeStyles","theme","root","display","flexGrow","paper","marginRight","spacing","menuButton","title","breakpoints","up","beta","align","MenuList","paddingRight","margin","fontSize","Navbar","classes","React","open","setOpen","anchorRef","useRef","handleClose","event","current","contains","target","handleListKeyDown","key","preventDefault","prevOpen","useEffect","focus","className","AppBar","position","Toolbar","ref","aria-controls","undefined","aria-haspopup","edge","aria-label","Popper","anchorEl","role","transition","disablePortal","TransitionProps","placement","Grow","transformOrigin","Paper","ClickAwayListener","onClickAway","autoFocusItem","id","onKeyDown","MenuItem","disabled","Link","src","UG1","width","Typography","variant","UG2","UG3","UG4","UG5","Project1_TechnicalSummary","download","modalImage","CountryRoad","noWrap","defaultMapStyle","fromJS","MAP_STYLE","defaultLayers","get","PrettoSlider","withStyles","paddingTop","paddingBottom","thumb","boxShadow","active","valueLabel","left","track","borderRadius","rail","Slider","LayerTooltip","tooltipPlacementRight","Tooltip","Map1Control","activeStyle","setActiveStyle","sliderValue","setSliderValue","activeLayer","setActiveLayer","onChange","layers","filter","layer","getIn","map","type","newPaintValue","setIn","set","changeTheMap","ButtonGroup","value","currentTarget","RadioGroup","name","evt","noGutter","arrow","FormControlLabel","control","Radio","label","min","max","step","memo","colorsConnect","background","marginBottom","Legend","Grid","container","item","xs","colorsResistance","colorsUrban","LegendResistance","colorsAgCrop","colorsAgPasture","colorsAgRangeland","colorsAgWoodland","justify","LegendCounty2","countyImage","disableTransition","Logo","whiteAlLogo","alt","mapboxgl","workerClass","require","default","DEFAULT_THEME","trailColor0","INITIAL_VIEW_STATE","longitude","latitude","zoom","pitch","bearing","scaleControlStyle","right","bottom","App","trailLength","initialViewState","loopLength","animationSpeed","time","setTime","animation","mapStyle","setMapStyle","hoverData","setHoverData","renderPopup","setRenderPopup","deckCheck","setDeckCheck","viewport","setViewport","animate","t","requestAnimationFrame","cancelAnimationFrame","idnum","TripsLayer","data","getPath","d","coords","getTimestamps","timestamp","getColor","opacity","widthMinPixels","rounded","currentTime","visible","shadowEnabled","pickable","ContextProvider","MapContext","Provider","effects","controller","onHover","features","queryRenderedFeatures","x","y","Object","keys","length","coordinate","countyName","properties","NAME","stateName","StateName","agAcres","percentAg","conRank","con_rank","pvrRank","pvr_rank","top","showCompass","onViewportChange","mapboxApiAccessToken","MAPBOX_TOKEN","interactiveLayerIds","getMap","maxWidth","unit","checked","htmlFor","closeOnClick","closeButton","onClose","Project1","mark","marks","Map2Control","activeYear","setActiveYear","state","setState","handleChange","a","u","activeLetterOne","activeLetterTwo","activeLetterThree","displayLayer","console","log","getMapStyle","FormGroup","Checkbox","JSON","stringify","stateHighlight","colors","colors2","colors3","Map2","setGraphData","graphData","setOpen2","selectedState","useMemo","mapOptions","logoPosition","feature","bbox","minLng","minLat","maxLng","maxLat","WebMercatorViewport","fitBounds","transitionInterpolator","LinearInterpolator","around","offsetCenter","transitionDuration","tiles","LegendAg","LegendTransport","LegendUrban","lineGraphTitle","pieTitle","textAlign","Map2Plots","newGraphData","setNewGraphData","ag_2013_area_km2","ag_2013_mean","ag_2016_area_km2","ag_2016_mean","ag_2020_area_km2","ag_2020_mean","area_km","trans_2013_area_km2","trans_2013_mean","trans_2016_area_km2","trans_2016_mean","trans_2020_area_km2","trans_2020_mean","urban_2013_area_km2","urban_2013_mean","urban_2016_area_km2","urban_2016_mean","urban_2020_area_km2","urban_2020_mean","date","Agriculture","Math","round","Transportation","Energy","Urban","data2","elevation","LineChart","YAxis","Label","offset","XAxis","dataKey","interval","verticalAlign","Line","stackId","stroke","fill","strokeWidth","drawerWidth","appBar","transitions","create","easing","sharp","duration","leavingScreen","appBarShift","easeOut","enteringScreen","toolbar","minHeight","down","hide","drawer","flexShrink","drawerPaper","drawerHeader","alignItems","mixins","justifyContent","content","contentShift","assessmentIcon","PersistentDrawerRight","useTheme","open2","CssBaseline","clsx","Project2_TechnicalSummary","cover","IconButton","Drawer","anchor","direction","Container","Divider","Map3Control","visibility","switchState","setSwitchState","disturbanceLayers","layerId","overviewLayerId","Switch","inputProps","LegendCanopyCvr","LegendBasalArea","LegendBiomass","colorsNone","colorsConifer","colorsDeciduous","colorsMixed","colorsDead","LegendForestType","fireboundHighlight","Map3","fireInfo","setFireInfo","fireStat","setFireStat","selectedFire","fireId","FID","canopyCoverMean16","mean_2016_canopycover","canopyCoverMean17","mean_2017_canopycover","canopyCoverMean18","mean_2018_canopycover","canopyCoverMean19","mean_2019_canopycover","canopyCoverMean20","mean_2020_canopycover","biomassSum16","mean_2016_biomass","biomassSum17","mean_2017_biomass","biomassSum18","mean_2018_biomass","biomassSum19","mean_2019_biomass","biomassSum20","mean_2020_biomass","basalMean16","mean_2016_basalarea","basalMean17","mean_2017_basalarea","basalMean18","mean_2018_basalarea","basalMean19","mean_2019_basalarea","basalMean20","mean_2020_basalarea","lngLat","year","FIRE_YEAR","incident","INCIDENT","acres","GIS_ACRES","agency","AGENCY","fire","lineGraphTitle1","graphTitle","pieLabel","RADIAN","PI","renderCustomizedLabel","cx","cy","midAngle","innerRadius","outerRadius","percent","radius","index","cos","sin","textAnchor","dominantBaseline","toFixed","Map3Plots","pieData","setPieData","canopy","biomass","basal","parseFloat","intLost","ResponsiveContainer","syncId","CartesianGrid","strokeDasharray","angle","sm","PieChart","Pie","labelLine","legendType","Cell","parseInt","Project3_TechnicalSummary","Disturbance","exact","path","component","Project2","Project3","createMuiTheme","palette","primary","main","light","contrastText","secondary","dark","error","initial","contrastThreshold","tonalOffset","ReactDOM","render","ThemeProvider","document","getElementById"],"mappings":"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","file":"static/js/main.6ae63f1d.chunk.js","sourcesContent":["import React, { useState } from \"react\";\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\n\r\nexport default function ModalInfo(props) {\r\n\r\n const [modal, setModal] = useState(false);\r\n\r\n const toggle = () => setModal(!modal);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n\r\n \r\n \r\n {props.ModalTitle}\r\n \r\n {props.ModalBody}\r\n

filler text

\r\n\r\n \r\n

\r\n {/* */}\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React, { useState } from \"react\";\r\nimport { Button, Modal, ModalHeader, ModalBody, ModalFooter } from \"reactstrap\";\r\n\r\nexport default function ModalInfo(props) {\r\n\r\n const [modal, setModal] = useState(true);\r\n\r\n const toggle = () => setModal(!modal);\r\n\r\n return (\r\n
\r\n \r\n \r\n\r\n \r\n \r\n {props.ModalTitle}\r\n \r\n {props.ModalBody}\r\n \r\n

\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react'\r\nimport {Button} from \"@material-ui/core\";\r\nimport ShareIcon from \"@material-ui/icons/Share\";\r\nimport { CopyToClipboard } from \"react-copy-to-clipboard\";\r\nimport swal from '@sweetalert/with-react';\r\nimport \"./CopyUrlBtn.css\"\r\n\r\n\r\nconst CopyUrlBtn = () => {\r\n\r\n const url = window.location.href;\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default CopyUrlBtn\r\n","export default __webpack_public_path__ + \"static/media/Project1_TechnicalSummary.56d10c07.pdf\";","export default __webpack_public_path__ + \"static/media/country.3d111f98.jpg\";","export default __webpack_public_path__ + \"static/media/UG1-ag-land.a2c211cf.jpg\";","export default __webpack_public_path__ + \"static/media/UG2-connectivity.5c248c9c.jpg\";","export default __webpack_public_path__ + \"static/media/UG3-pvr.64294c63.jpg\";","export default __webpack_public_path__ + \"static/media/UG4-rank.51f25493.jpg\";","export default __webpack_public_path__ + \"static/media/UG5-county.e6feac46.jpg\";","import React from \"react\";\r\nimport {AppBar, Toolbar, Typography, Link, Button, Popper, Grow, ClickAwayListener, Paper, MenuList, MenuItem} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport MapModal from \"../components/MapModal\";\r\nimport IntroModal from \"../components/IntroModal\";\r\nimport CopyUrlBtn from \"../components/CopyUrlBtn\";\r\nimport Project1_TechnicalSummary from \"../images/Project1_TechnicalSummary.pdf\";\r\nimport CountryRoad from \"../images/country.jpg\";\r\nimport UG1 from \"../images/UG1-ag-land.jpg\";\r\nimport UG2 from \"../images/UG2-connectivity.jpg\"\r\nimport UG3 from \"../images/UG3-pvr.jpg\";\r\nimport UG4 from \"../images/UG4-rank.jpg\";\r\nimport UG5 from \"../images/UG5-county.jpg\";\r\n\r\n//Icons\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\r\nimport PublicIcon from \"@material-ui/icons/Public\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n flexGrow: 1,\r\n zIndex: 50\r\n },\r\n paper: {\r\n marginRight: theme.spacing(2),\r\n },\r\n menuButton: {\r\n marginRight: theme.spacing(2),\r\n },\r\n title: {\r\n flexGrow: 1,\r\n display: \"none\",\r\n [theme.breakpoints.up(\"sm\")]: {\r\n display: \"block\",\r\n },\r\n fontSize: \"24px\",\r\n },\r\n beta: {\r\n color: \"#DEF000\",\r\n align: \"left\",\r\n },\r\n MenuList: {\r\n padding: \"18px\",\r\n paddingLeft: \"0px\",\r\n paddingRight: \"5px\",\r\n margin: \"-7px\",\r\n fontSize: \"16px\",\r\n },\r\n}));\r\n\r\nexport default function Navbar() {\r\n const classes = useStyles();\r\n\r\n const [open, setOpen] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n\r\n const handleToggle = () => {\r\n setOpen((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n\r\n setOpen(false);\r\n };\r\n\r\n function handleListKeyDown(event) {\r\n if (event.key === \"Tab\") {\r\n event.preventDefault();\r\n setOpen(false);\r\n }\r\n }\r\n\r\n // return focus to the button when we transitioned from !open -> open\r\n const prevOpen = React.useRef(open);\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && open === false) {\r\n anchorRef.current.focus();\r\n }\r\n\r\n prevOpen.current = open;\r\n }, [open]);\r\n\r\n return (\r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n   Connectivity on Agricultural Lands\r\n \r\n \r\n \r\n \r\n \r\n   Anthropogenic Impacts\r\n \r\n \r\n \r\n \r\n \r\n   Monitoring Forest Change\r\n \r\n \r\n \r\n \r\n \r\n   Analytics Lab + AI for Earth\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n\r\n \r\n \r\n\r\n \r\n
Background
\r\n

\r\n Agricultural lands (croplands, pasture, and rangelands) make up close to half of the land area of the lower 48 United States and therefore have a crucial role to play in supporting connectivity between populations of native species. While intensive farming and habitat fragmentation associated with some agricultural practices represent major threats to native species and their ability to move, conservation-focused management of agricultural lands (e.g., planting grassland or forest strips, diversification of crops) can reduce these barriers to movement and support the flow of organisms across agricultural landscapes. The U.S. Department of Agriculture (USDA) allocates billions of dollars each year to ag land conservation programs, but information is limited on where to target these funds to maximize benefits for biodiversity, and many landowners may not realize that their lands are eligible for conservation-focused financial incentives.\r\n

\r\n

\r\n This interactive map explores the potential for agricultural lands across the U.S. to contribute to ecological connectivity (i.e., the movement of species and genes across the landscape) and identifies potential conservation opportunities on agricultural lands based on their contribution to both connectivity and food production. Here we step through the major features of the map and demonstrate how to use this tool to prioritize conservation actions on agricultural lands, both locally and at the national scale.\r\n

\r\n
Explore connectivity on agricultural lands
\r\n

While agricultural lands such as cropland and pasture typically support less movement of organisms than surrounding natural landscapes, connectivity through these working lands can in some cases be substantial, providing important linkages between areas of high quality habitat. This map allows you to view the types of agricultural land cover that occur in a given area and the degree of connectivity through those agricultural lands and surrounding landscapes. Data on agricultural land cover were produced for the American Farmland Trust’s Farms Under Threat analysis.\r\n

\r\n \r\n An example landscape in central Missouri characterized by a mix of agriculture and natural areas. Both agricultural land cover type (left panel) and satellite imagery (right panel) are shown.\r\n

filler text

\r\n\r\n \r\n Connectivity across the same mixed agricultural and natural landscape in central Missouri.\r\n

filler text

\r\n\r\n
Explore agricultural land productivity, versatility, and resilience (PVR)
\r\n

PVR is an index of agricultural land quality developed by the American Farmland Trust and Conservation Science Partners that estimates the suitability of a given location for long-term food production based on soil characteristics, growing season length, and land cover type (for more information on PVR, see the American Farmland Trust’s Farms Under Threat analysis). With this map, you can explore the PVR value of agricultural lands in your region or across the U.S.

\r\n \r\n Productivity, versatility, and resilience (PVR) mapped across the example landscape in central Missouri.\r\n

filler text

\r\n\r\n
Identify conservation opportunities based on connectivity and PVR rankings
\r\n

By combining connectivity and PVR, this map identifies several categories of conservation opportunity on agricultural lands. The Connectivity and PVR Rankings layer classifies all ag land locations as low, medium, or high for both connectivity and PVR (see matrix in bottom left), which can then inform the type of conservation action that may be suitable for that area. For instance, locations that have high values of both connectivity and PVR (shown in purple) may be strong candidates for programs that incentivize wildlife-friendly farming practices (e.g., the USDA’s Conservation Stewardship Program) given their importance for both species movement and food production. Locations with high connectivity value and low PVR (dark blue) may be targets for removal from production and for ecological restoration to bolster their potential to support wildlife habitat and the movement of organisms (e.g., through the USDA’s Conservation Reserve Program). Areas in yellow represent high-quality agricultural lands with relatively limited value for connectivity and may be good candidates for programs that keep lands in production and protect against conversion to urban or residential development (e.g., the USDA’s Agricultural Conservation Easement Program).

\r\n \r\n Connectivity and PVR rankings for all locations on agricultural land across the example landscape in central Missouri. \r\n

filler text

\r\n\r\n

At the local level, farmers, land trusts, and advocates can use this conservation opportunity tool to explore the types of conservation-focused financial incentives that might make sense for the landscapes they work in and care about. At a larger scale, the County-Level Summaries layer facilitates the rapid identification of regions across the U.S. with substantial amounts of agricultural land in a given category for PVR and connectivity, which can help facilitate prioritization and allocation of conservation funds by the USDA and other organizations. For instance, the county layer shows a cluster of counties in central Virginia with large amounts of agricultural land in the ‘high connectivity-high PVR’ category (purple). Zooming in on this area then allows the user to see which tracts of agricultural land are in that ‘high-high’ category and thus may be good candidates for conservation-focused incentives.

\r\n\r\n \r\n Connectivity and PVR rankings summarized at the county level, where the color of a county corresponds to the most common ranking across all agricultural lands in that county. The detailed area shows connectivity and PVR rankings of agricultural lands for an area in central Virginia with large amounts of land in the ‘high connectivity-high PVR’ category.\r\n

filler text

\r\n\r\n\r\n

\r\n Download the technical summary and methods \r\n \r\n {\" \"}here.\r\n \r\n

\r\n
\r\n }\r\n modalImage={CountryRoad}\r\n >\r\n About this Map\r\n \r\n\r\n \r\n Connectivity Across U.S. Agricultural Lands{\" \"}\r\n {/* BETA */}\r\n \r\n\r\n \r\n

\r\n Preserving movement pathways for native species and linkages between areas of intact natural habitat is key to mitigating the current biodiversity crisis. At the same time, protecting the highest quality agricultural lands is similarly critical to our long-term food security. This map explores the role of agricultural lands across the U.S. in supporting the movement of species and connecting high-quality habitats. \r\n

\r\n

\r\n We draw on new spatial data on agricultural land cover and management intensity to identify agricultural areas that are likely to provide important connectivity benefits to native species. By combining the connectivity value of agricultural lands with information on ag land quality and sustainability, this map can help landowners, conservation advocates, and agencies across the country identify conservation opportunities on agricultural lands that benefit both farmers and wildlife. Our {} provides details on how to use this tool for conservation planning.\r\n

\r\n

\r\n A brief summary of our methods is available here. \r\n

\r\n \r\n }>\r\n
\r\n\r\n\r\n \r\n \r\n \r\n );\r\n}\r\n"," import React from \"react\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { fromJS } from \"immutable\";\r\nimport MAP_STYLE from \"./Map1Style.json\";\r\nimport {Button, ButtonGroup, Radio, RadioGroup, FormControlLabel, Slider, Tooltip, } from \"@material-ui/core/\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\n\r\n\r\nconst defaultMapStyle = fromJS(MAP_STYLE);\r\nconst defaultLayers = defaultMapStyle.get(\"layers\");\r\n\r\nconst PrettoSlider = withStyles({\r\n root: {\r\n color: \"rgb(190, 215, 71)\",\r\n height: 1,\r\n paddingTop: \"5px\",\r\n paddingBottom: \"10px\" \r\n },\r\n thumb: {\r\n height: 18,\r\n width: 18,\r\n backgroundColor: \"#fff\",\r\n border: \"2px solid currentColor\",\r\n marginTop: -6,\r\n marginLeft: -10,\r\n \"&:focus, &:hover, &$active\": {\r\n boxShadow: \"inherit\",\r\n },\r\n },\r\n active: {},\r\n valueLabel: {\r\n left: \"calc(-50%)\",\r\n },\r\n track: {\r\n height: 6,\r\n borderRadius: 4,\r\n },\r\n rail: {\r\n height: 6,\r\n borderRadius: 4,\r\n },\r\n})(Slider);\r\n\r\nconst LayerTooltip = withStyles({\r\n tooltipPlacementRight: {\r\n left: \"7px\",\r\n },\r\n})(Tooltip);\r\n\r\nfunction changeTheMap(activeStyle, sliderValue, activeLayer) {\r\n let layers = defaultLayers.filter((layer) => {\r\n const style = layer.getIn([\"metadata\", \"style\"]);\r\n const id = layer.get(\"id\");\r\n return style === activeStyle || id === activeLayer;\r\n });\r\n layers = layers.map((layer) => {\r\n const style = layer.getIn([\"metadata\", \"style\"]);\r\n const type = layer.get(\"type\");\r\n const newPaintValue = sliderValue * 0.01;\r\n if (style === \"none\" && type === \"raster\") {\r\n layer = layer.setIn([\"paint\", \"raster-opacity\"], newPaintValue);\r\n }\r\n return layer;\r\n });\r\n return defaultMapStyle.set(\"layers\", layers);\r\n}\r\n\r\nconst Map1Control = (props) => {\r\n const [activeStyle, setActiveStyle] = useState(\"darkSimple\");\r\n const [sliderValue, setSliderValue] = useState(100);\r\n const activeLayer = props.activeLayer;\r\n const setActiveLayer = props.setActiveLayer; \r\n\r\n useEffect(() => {\r\n props.onChange(changeTheMap(activeStyle, sliderValue, activeLayer));\r\n }, [activeStyle, sliderValue, activeLayer]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Satellite\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Dark\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Light\r\n \r\n \r\n
\r\n\r\n
\r\n

Species Movement

\r\n setActiveLayer(evt.target.value)}\r\n >\r\n

Ability of a given location to support the long-distance movement of organisms (e.g., through migration) and to provide linkages between areas of high quality habitat.

} arrow>\r\n }\r\n label=\"Connectivity\"\r\n />\r\n
\r\n\r\n

Difficulty that an organism experiences in moving through a location on the landscape. More modified landscapes (i.e., heavily developed areas or those under intensive agriculture) have higher resistance.

} arrow>\r\n }\r\n label=\"Landscape Resistance\"\r\n />\r\n
\r\n \r\n
\r\n\r\n
\r\n

Agriculture

\r\n setActiveLayer(evt.target.value)}\r\n >\r\n\r\n

Type of agriculture practiced on working lands across the U.S., circa 2016.

} arrow>\r\n }\r\n label=\"Agricultural Land Cover\"\r\n id=\"Agricultural Land Cover\"\r\n />\r\n
\r\n\r\n

Long-term sustainability of maintaining a given area in cultivation based on soil productivity, land cover and use, and food production. PVR is a general measure of the importance of keeping a given location in agriculture..

} arrow>\r\n }\r\n label=\"Productivite, Versatile, and Resilient (PVR) lands\"\r\n />\r\n
\r\n \r\n
\r\n\r\n
\r\n

Co-benefits for Connectivity and Agriculture

\r\n setActiveLayer(evt.target.value)}\r\n >\r\n\r\n

Importance of a given location for both connectivity and food production. Each location on agricultural lands is ranked as low, medium, or high for connectivity and PVR relative to other agricultural lands. These rankings can be used to identify potential conservation opportunities on agricultural lands, as described in the {}.

} arrow>\r\n }\r\n label=\"Connectivity and PVR Rankings\"\r\n />\r\n
\r\n\r\n

U.S. counties color-coded by the most common connectivity and PVR ranking across all agricultural lands within the county. Counties in black have low amounts of agricultural land.

} arrow>\r\n }\r\n label=\"County Summaries\"\r\n />\r\n
\r\n\r\n \r\n
\r\n\r\n\r\n
\r\n \r\n setSliderValue(value)}\r\n />\r\n
\r\n
\r\n );\r\n};\r\n\r\nexport default React.memo(Map1Control);\r\n","import React from 'react'\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n //Map1\r\n //Connectivity Legend Colors\r\n colorsConnect: {\r\n background:\r\n \"linear-gradient(#FFFF00, #FFC800, #FF8C00, #FF5100, #EB0905, #D90E07, #C71208, #B81D1D, #A3344E, #7D4585, #4A56C7, #0251D1, #0243B3, #013594, #012978, #1E2159, #291B3B, #29141F, #26100B, #26100B)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function Legend () {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n

\r\n Connectivity\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n High\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Low\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n //Map1\r\n //Connectivity Legend Colors\r\n colorsConnect: {\r\n background:\r\n \"linear-gradient(#FFFF00, #FFC800, #FF8C00, #FF5100, #EB0905, #D90E07, #C71208, #B81D1D, #A3344E, #7D4585, #4A56C7, #0251D1, #0243B3, #013594, #012978, #1E2159, #291B3B, #29141F, #26100B, #26100B)\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsResistance: {\r\n background:\r\n \"linear-gradient(#df9a6a, #a03969, #601d6c, #39124f, #000000)\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n //Map2\r\n //Urban Impact Zone colors\r\n colorsUrban: {\r\n background: \"linear-gradient(#ffff00, #ffbb00, #ff0000, #000000)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function LegendResistance() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n

Landscape Resistance

\r\n \r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n High\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Low\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n //Map1\r\n //Connectivity Legend Colors\r\n colorsConnect: {\r\n background:\r\n \"linear-gradient(#FFFF00, #FFC800, #FF8C00, #FF5100, #EB0905, #D90E07, #C71208, #B81D1D, #A3344E, #7D4585, #4A56C7, #0251D1, #0243B3, #013594, #012978, #1E2159, #291B3B, #29141F, #26100B, #26100B)\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsResistance: {\r\n background: \"linear-gradient(#df9a6a, #a03969, #601d6c, #39124f, #000000)\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsAgCrop: {\r\n backgroundColor: \"#02682c\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsAgPasture: {\r\n backgroundColor: \"#61aa36\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsAgRangeland: {\r\n backgroundColor: \"#e2c85f\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsAgWoodland: {\r\n backgroundColor: \"#94734a\",\r\n marginBottom: \"5px\",\r\n },\r\n //Map2\r\n //Urban Impact Zone colors\r\n colorsUrban: {\r\n background: \"linear-gradient(#ffff00, #ffbb00, #ff0000, #000000)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function LegendResistance() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n

Agricultural Land Cover

\r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Crop\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Pasture\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Range\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Woodland\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from 'react'\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n //Map1\r\n //Connectivity Legend Colors\r\n colorsConnect: {\r\n background:\r\n \"linear-gradient(#FDE725, #EDE418, #C7E020, #AADC32, #8FD744, #75D054, #5DC863, #47C16E, #35B779, #27AD81, #20A486, #1F9A8A, #21908C, #24868E, #287C8E, #2C7C8E, #31688E, #365D8D, #3B528B, #404688, #443A83, #472D7B, #481F70, #471164, #440154)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function Legend () {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n

\r\n PVR\r\n

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n High\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Low\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\n","export default __webpack_public_path__ + \"static/media/con-pvr-legend.3b176d10.png\";","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport countyImage from \"../../images/con-pvr-legend.png\"\r\nimport Image from \"material-ui-image\";\r\n\r\nconst useStyles = makeStyles({\r\n\r\n});\r\n\r\nexport default function LegendCounty2() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/con-pvr-legend-county.bb26b29e.png\";","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport countyImage from \"../../images/con-pvr-legend-county.png\"\r\nimport Image from \"material-ui-image\";\r\n\r\nconst useStyles = makeStyles({\r\n\r\n});\r\n\r\nexport default function LegendCounty2() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n );\r\n}","export default __webpack_public_path__ + \"static/media/whiteAlLogo.a3eadeef.png\";","import React from 'react';\r\nimport whiteAlLogo from \"../images/whiteAlLogo.png\";\r\nimport { Link } from \"@material-ui/core\";\r\n\r\n\r\nconst Logo = (props) => {\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nexport default Logo\r\n","import React from \"react\";\r\nimport mapboxLogo from \"../images/mapbox-logo-white.png\";\r\n\r\nconst Logo = () => {\r\n return (\r\n
\r\n \r\n
\r\n );\r\n};\r\n\r\nexport default Logo;\r\n","export default \"data:image/png;base64,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\"","import React, { useState, useEffect} from \"react\";\r\nimport { render } from \"react-dom\";\r\nimport ReactMapGL, {\r\n _MapContext as MapContext,\r\n ScaleControl,\r\n NavigationControl, Popup\r\n} from \"react-map-gl\";\r\nimport DeckGL from \"@deck.gl/react\";\r\nimport { TripsLayer } from \"@deck.gl/geo-layers\";\r\nimport mapboxgl from \"mapbox-gl\";\r\nimport {Typography, Tooltip} from \"@material-ui/core/\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\n\r\n//CSS\r\nimport \"./Map1.css\";\r\n\r\n//components\r\nimport Map1Control from \"./Map1Control\";\r\nimport Legend from \"./Legend.js\";\r\nimport LegendResistance from \"../Map3Components/LegendResistance\";\r\nimport LegendAgLand from \"./LegendAgLands\";\r\nimport LegendPVR from \"./LegendPVR\";\r\nimport LegendCounty from \"./LegendCounty\";\r\nimport LegendCounty2 from \"./LegendCounty2\";\r\nimport Logo from \"../Logo\";\r\nimport MapboxLogo from \"../mapboxLogo\";\r\nimport { MAPBOX_TOKEN } from \"../../config\";\r\n\r\n// eslint-disable-next-line import/no-webpack-loader-syntax\r\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default;\r\n\r\nconst mapboxToken = MAPBOX_TOKEN\r\n\r\nconst DEFAULT_THEME = {\r\n trailColor0: [255, 255, 255],\r\n};\r\n\r\nconst INITIAL_VIEW_STATE = {\r\n longitude: -102.879576,\r\n latitude: 39.1283,\r\n zoom: 3.95,\r\n pitch: 0,\r\n bearing: 0,\r\n};\r\n\r\nconst scaleControlStyle = {\r\n right: 10,\r\n bottom: 108,\r\n borderRadius: \"5px\",\r\n};\r\n\r\nexport default function App({\r\n trailLength = 380,\r\n initialViewState = INITIAL_VIEW_STATE,\r\n theme = DEFAULT_THEME,\r\n loopLength = 2800, // unit corresponds to the timestamp in source data\r\n animationSpeed = 1.2,\r\n // animationSpeed = 4.6\r\n}) {\r\n const [time, setTime] = useState(0);\r\n const [animation] = useState({});\r\n const [mapStyle, setMapStyle] = useState(\"\");\r\n const [activeLayer, setActiveLayer] = useState(\"Connectivity\");\r\n const [hoverData, setHoverData] = useState('');\r\n const [renderPopup, setRenderPopup] = useState(false)\r\n const [deckCheck, setDeckCheck] = useState(false);\r\n const [viewport, setViewport] = useState({\r\n latitude: 38.3283,\r\n longitude: -98.579576,\r\n zoom: 5.5,\r\n width: \"100vw\",\r\n height: \"92.65vh\",\r\n });\r\n\r\n const onHover = (event) => {\r\n // console.log(\"event\", event)\r\n const features = App.queryRenderedFeatures([event.x, event.y], {\r\n layers: [\"County-level Values\"]\r\n })\r\n // console.log(\"features\", features);\r\n if (Object.keys(features).length !== 0) {\r\n setHoverData({\r\n longitude: event.coordinate[0],\r\n latitude: event.coordinate[1],\r\n countyName: features[0] && features[0].properties.NAME,\r\n stateName: features[0] && features[0].properties.StateName,\r\n agAcres: features[0] && features[0].properties.agAcres,\r\n percentAg: features[0] && features[0].properties.percentAg,\r\n conRank: features[0] && features[0].properties.con_rank,\r\n pvrRank: features[0] && features[0].properties.pvr_rank,\r\n })\r\n setRenderPopup(true);\r\n } else {\r\n setRenderPopup(false);\r\n }\r\n };\r\n\r\n const animate = () => {\r\n setTime((t) => (t + animationSpeed) % loopLength);\r\n animation.id = window.requestAnimationFrame(animate);\r\n };\r\n\r\n useEffect(() => {\r\n animation.id = window.requestAnimationFrame(animate);\r\n return () => window.cancelAnimationFrame(animation.id);\r\n }, [animation, activeLayer]);\r\n\r\n const layers = [\r\n deckCheck\r\n ? [\"1\", \"2\", \"3\", \"4\", \"5\", \"6\"].map((idnum) => {\r\n return new TripsLayer({\r\n id: \"3000_\" + idnum,\r\n data:\r\n // \"https://storage.googleapis.com/connectivity-app/current-paths-v018/current-path-conus-3000-\"\r\n \"https://storage.googleapis.com/connectivity-app/current-paths/current-path-conus-3000-\"\r\n +\r\n idnum +\r\n \".json\",\r\n getPath: (d) => d.coords,\r\n getTimestamps: (d) => d.timestamp,\r\n getColor: theme.trailColor0,\r\n opacity: 0.8,\r\n widthMinPixels: 3,\r\n rounded: true,\r\n trailLength,\r\n currentTime: time,\r\n visible: true,\r\n shadowEnabled: false,\r\n pickable: true,\r\n });\r\n })\r\n : null,\r\n ];\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n setViewport(viewport)}\r\n mapboxApiAccessToken={mapboxToken}\r\n mapStyle={mapStyle}\r\n interactiveLayerIds={['County-level Values']}\r\n ref={ref => { App = ref && ref.getMap(); }}\r\n >\r\n \r\n \r\n\r\n
\r\n {/*

Important Movement Pathways

*/}\r\n setDeckCheck(e.target.checked)}\r\n checked={deckCheck}\r\n />\r\n

Simulated movement routes of organisms along high-connectivity pathways, illustrating the potential for landscapes across the U.S. to support long-distance movements.

} arrow>\r\n \r\n Important Movement Pathways\r\n \r\n
\r\n
\r\n\r\n
\r\n
\r\n {activeLayer === \"Connectivity\" && }\r\n {activeLayer === \"Landscape Resistance\" && }\r\n {activeLayer === \"Agricultural Land Cover\" && }\r\n {activeLayer === \"PVR\" && }\r\n {activeLayer === \"Conservation Opportunity\" && }\r\n {activeLayer === \"County-level Values\" && }\r\n\r\n
\r\n
\r\n\r\n {renderPopup === true && (\r\n
\r\n setRenderPopup(false)}\r\n >\r\n {hoverData.countyName}, {hoverData.stateName}\r\n {/* Agricultural Acres: {hoverData.agAcres} */}\r\n Percent of County in Ag: {hoverData.percentAg}\r\n Agricultural (PVR): {hoverData.pvrRank}\r\n Connectivity: {hoverData.conRank}\r\n \r\n
\r\n )} \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport function renderToDOM(container) {\r\n render(, container);\r\n}\r\n","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport Navbar from \"../components/Navbar\"\r\nimport Map1 from \"../components/Map1Components/Map1\"\r\n\r\nexport default function Project1() {\r\n\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}","export default __webpack_public_path__ + \"static/media/Project2_TechnicalSummary.0e592ac1.pdf\";","export default __webpack_public_path__ + \"static/media/architecture.9f30edfd.jpg\";","import React from \"react\";\r\nimport { useState, useEffect } from \"react\";\r\nimport { fromJS } from \"immutable\";\r\nimport MAP_STYLE from \"./Map2Style.json\";\r\nimport { Button, ButtonGroup, Slider, Typography, Checkbox, FormGroup, FormControlLabel, Tooltip } from \"@material-ui/core\";\r\nimport { withStyles } from \"@material-ui/styles\";\r\n\r\n\r\nconst defaultMapStyle = fromJS(MAP_STYLE);\r\nconst defaultLayers = defaultMapStyle.get(\"layers\");\r\n\r\nconst PrettoSlider = withStyles({\r\n root: {\r\n color: \"rgb(190, 215, 71)\",\r\n height: 2,\r\n marginTop: -10,\r\n },\r\n thumb: {\r\n height: 18,\r\n width: 18,\r\n backgroundColor: \"#fff\",\r\n border: \"2px solid currentColor\",\r\n marginTop: -6,\r\n marginLeft: -10,\r\n \"&:focus, &:hover, &$active\": {\r\n boxShadow: \"inherit\",\r\n },\r\n },\r\n active: {},\r\n valueLabel: {\r\n left: \"calc(-50%)\",\r\n },\r\n track: {\r\n height: 6,\r\n borderRadius: 4,\r\n },\r\n rail: {\r\n height: 6,\r\n borderRadius: 4,\r\n },\r\n mark: {\r\n height: 11,\r\n },\r\n})(Slider);\r\n\r\nconst LayerTooltip = withStyles({\r\n tooltipPlacementRight: {\r\n left: \"18px\",\r\n },\r\n})(Tooltip);\r\n\r\nconst marks = [\r\n {\r\n value: 2012,\r\n label: \"'13\",\r\n },\r\n {\r\n value: 2016,\r\n label: \"'16\",\r\n },\r\n {\r\n value: 2020,\r\n label: \"'20\",\r\n },\r\n];\r\n\r\nfunction getMapStyle(activeStyle, sliderValue, activeYear, state) {\r\n let layers = defaultLayers.filter((layer) => {\r\n const id = layer.get(\"id\");\r\n const style = layer.getIn([\"metadata\", \"style\"]);\r\n let activeLetterOne = \"\"\r\n let activeLetterTwo = \"\"\r\n let activeLetterThree = \"\"\r\n if (state.a === true) {\r\n activeLetterOne = \"a\"\r\n }\r\n if (state.t === true) {\r\n activeLetterTwo = \"t\"\r\n }\r\n if (state.u === true) {\r\n activeLetterThree = \"u\";\r\n }\r\n const displayLayer = activeLetterOne + activeLetterTwo + activeLetterThree + \"_\" + activeYear;\r\n console.log(\"displayLayer\", displayLayer);\r\n return (\r\n id === displayLayer || style === activeStyle || id === \"summaryStats\"\r\n );\r\n });\r\n layers = layers.map((layer) => {\r\n const style = layer.getIn([\"metadata\", \"style\"]);\r\n const type = layer.get(\"type\");\r\n const newPaintValue = sliderValue * 0.01;\r\n if (style === \"none\" && type === \"raster\") {\r\n layer = layer.setIn([\"paint\", \"raster-opacity\"], newPaintValue);\r\n }\r\n return layer;\r\n });\r\n\r\n return defaultMapStyle.set(\"layers\", layers);\r\n}\r\n\r\nconst Map2Control = (props) => {\r\n const [sliderValue, setSliderValue] = useState(100);\r\n const [activeStyle, setActiveStyle] = useState(\"darkSimple\");\r\n const [activeYear, setActiveYear] = useState('2020')\r\n const state = props.state;\r\n const setState = props.setState;\r\n\r\n const handleChange = (event) => {\r\n setState({ ...state, [event.target.name]: event.target.checked });\r\n };\r\n\r\n const { a, t, u } = state;\r\n const handleStyle = (event, newStyle) => {\r\n setActiveStyle(newStyle);\r\n };\r\n\r\n useEffect(() => {\r\n props.onChange(getMapStyle(activeStyle, sliderValue, activeYear, state));\r\n }, [activeStyle, sliderValue, activeYear, state]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Satellite\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Dark\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Light\r\n \r\n \r\n
\r\n\r\n
\r\n

\r\n Opacity: {sliderValue}%\r\n

\r\n setSliderValue(value)}\r\n />\r\n
\r\n\r\n
\r\n

Anthropogenic Stressors

\r\n \r\n

The degree of alteration of the natural environment through the planting and harvesting of crops as well as grazing impacts on pasturelands.

} arrow>\r\n }\r\n label=\"Agriculture\"\r\n />\r\n
\r\n\r\n

The footprint of roads, railways, and other modes of transportation as well as their estimated impact on the surrounding environment through noise, fencing, etc.

} arrow>\r\n }\r\n label=\"Transportation\"\r\n />\r\n
\r\n\r\n

The footprint of cities, rural development and other built up areas as well as their estimated impact on the surrounding environment through artificial lighting and other effects.

} arrow>\r\n }\r\n label=\"Urban\"\r\n />\r\n
\r\n
\r\n\r\n

Year

\r\n setActiveYear(JSON.stringify(value))}\r\n />\r\n\r\n *Click a state to view graph data*\r\n
\r\n\r\n
\r\n\r\n\r\n );\r\n};\r\n\r\nexport default React.memo(Map2Control);\r\n\r\n","export const stateHighlight = {\r\n \"id\": \"stateHighlight\",\r\n \"source\": \"summaryStats\",\r\n \"source-layer\": \"summary_stats\",\r\n \"type\": \"fill\",\r\n \"interactive\": true,\r\n \"layout\": {\r\n \"visibility\": \"visible\"\r\n },\r\n \"metadata\": { \r\n \"style\": \"none\",\r\n \"name\": \"County-level Values\"\r\n },\r\n \"paint\": {\r\n \"fill-outline-color\": \"#ffff00\",\r\n \"fill-color\": \"hsla(120, 60%, 70%, 0.0)\"\r\n }\r\n }","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n colors: {\r\n background: 'linear-gradient(#ffff00, #ffbb00, #ff0000, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colors2: {\r\n background: 'linear-gradient(#528E54, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colors3: {\r\n background: 'linear-gradient(#E7F0D6, #6493C8, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n}));\r\n\r\n//Map2 Legend\r\n\r\nconst Legend = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n \r\n
\r\n

Agricultural

\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n High\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Low\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n );\r\n};\r\n\r\nexport default Legend;","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n colors: {\r\n background: 'linear-gradient(#ffff00, #ffbb00, #ff0000, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colors2: {\r\n background: 'linear-gradient(#528E54, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colors3: {\r\n background: 'linear-gradient(#E7F0D6, #6493C8, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n}));\r\n\r\n//Map2 Legend\r\n\r\nconst Legend = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n

Transportation

\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n High\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Low\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n \r\n );\r\n};\r\n\r\nexport default Legend;","import React from \"react\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n colors: {\r\n background: 'linear-gradient(#ffff00, #ffbb00, #ff0000, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colors2: {\r\n background: 'linear-gradient(#528E54, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colors3: {\r\n background: 'linear-gradient(#E7F0D6, #6493C8, #000000)',\r\n marginBottom: \"5px\",\r\n },\r\n}));\r\n\r\n//Map2 Legend\r\n\r\nconst Legend = () => {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n\r\n
\r\n

Urban

\r\n \r\n \r\n
\r\n \r\n \r\n
\r\n
\r\n \r\n High\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Low\r\n \r\n
\r\n
\r\n
\r\n \r\n
\r\n\r\n \r\n );\r\n};\r\n\r\nexport default Legend;","import React, { useState, useMemo } from \"react\";\r\nimport ReactMapGL, { NavigationControl, ScaleControl, Source, Layer, WebMercatorViewport, LinearInterpolator } from \"react-map-gl\";\r\nimport Map2Control from \"./Map2Control\";\r\nimport mapboxgl from \"mapbox-gl\";\r\nimport Logo from \"../Logo\";\r\nimport MapboxLogo from \"../mapboxLogo\"\r\nimport { stateHighlight } from \"./Map2StateStyle\";\r\nimport bbox from '@turf/bbox';\r\nimport LegendAg from \"./LegendAg\";\r\nimport LegendTransport from \"./LegendTransport\";\r\nimport LegendUrban from \"./LegendUrban\";\r\nimport { MAPBOX_TOKEN } from \"../../config\";\r\n\r\nimport \"./Map2.css\";\r\n\r\n// eslint-disable-next-line import/no-webpack-loader-syntax\r\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default;\r\n\r\nconst mapboxToken = MAPBOX_TOKEN\r\n\r\nconst Map2 = (props) => {\r\n const [mapStyle, setMapStyle] = useState(\r\n \"mapbox://styles/mapbox/satellite-v9\"\r\n );\r\n const setGraphData = props.setGraphData;\r\n const graphData = props.graphData;\r\n const setOpen2 = props.setOpen;\r\n const [viewport, setViewport] = useState({\r\n latitude: 38.3283,\r\n longitude: -98.579576,\r\n zoom: 3.95,\r\n // width: \"100vw\",\r\n // height: \"93.1vh\",\r\n });\r\n const [state, setState] = React.useState({\r\n a: true,\r\n t: true,\r\n u: true,\r\n });\r\n\r\n const navControlStyle = {\r\n right: 10,\r\n top: 10,\r\n };\r\n\r\n const scaleControlStyle = {\r\n right: 10,\r\n bottom: 108,\r\n };\r\n\r\n const onClick = (event) => {\r\n setGraphData(event.features[0]);\r\n setOpen2(true);\r\n console.log(\"map2 click event\", event)\r\n const feature = event.features[0];\r\n if (feature) {\r\n // calculate the bounding box of the feature\r\n const [minLng, minLat, maxLng, maxLat] = bbox(feature);\r\n // construct a viewport instance from the current state\r\n const vp = new WebMercatorViewport(viewport);\r\n const {longitude, latitude, zoom} = vp.fitBounds(\r\n [\r\n [minLng, minLat],\r\n [maxLng, maxLat]\r\n ],\r\n {\r\n padding: 250\r\n }\r\n );\r\n setViewport({\r\n ...viewport,\r\n longitude,\r\n latitude,\r\n zoom,\r\n transitionInterpolator: new LinearInterpolator({\r\n around: [event.offsetCenter.x, event.offsetCenter.y]\r\n }),\r\n transitionDuration: 1000\r\n });\r\n }\r\n }\r\n\r\n const selectedState = (graphData && graphData.properties.NAME) || '';\r\n const filter = useMemo(() => ['in', 'NAME', selectedState], [selectedState]);\r\n \r\n return (\r\n <>\r\n setViewport(viewport)}\r\n mapboxApiAccessToken={mapboxToken}\r\n mapStyle={mapStyle}\r\n mapOptions={{ logoPosition: \"bottom-right\" }}\r\n height='100%'\r\n width='100%'\r\n onClick={onClick}\r\n interactiveLayerIds={['summaryStats']}\r\n >\r\n \r\n \r\n\r\n \r\n \r\n \r\n\r\n
\r\n
\r\n {state.a === true && }\r\n {state.t === true && }\r\n {state.u === true && }\r\n
\r\n
\r\n \r\n \r\n\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nexport default Map2;","import { Typography, Paper, Grid } from '@material-ui/core';\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport React, {useEffect, useState} from 'react';\r\nimport {XAxis, YAxis, Tooltip, Legend, Label, LineChart, Line} from 'recharts';\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n backgroundColor: \"#ced8d7\",\r\n paddingBottom: \"10px\"\r\n },\r\n lineGraphTitle: {\r\n paddingTop: \"15px\",\r\n marginTop: \"10px\",\r\n },\r\n pieTitle: {\r\n paddingTop: \"15px\",\r\n marginTop: \"10px\",\r\n marginBottom: \"-30px\",\r\n textAlign: \"center\"\r\n },\r\n\r\n}));\r\n\r\nconst Map2Plots = (props) => {\r\nconst classes = useStyles();\r\nconst graphData = props.graphData;\r\nconst [newGraphData, setNewGraphData] = useState(0);\r\n\r\nuseEffect(() => {\r\nif (graphData !== null) {\r\n setNewGraphData({\r\n name : graphData.properties.NAME,\r\n\r\n ag_2013_area_km2: graphData.properties.ag_2013_area_km2,\r\n ag_2013_mean: graphData.properties.ag_2013_mean,\r\n ag_2016_area_km2: graphData.properties.ag_2016_area_km2,\r\n ag_2016_mean: graphData.properties.ag_2016_mean,\r\n ag_2020_area_km2: graphData.properties.ag_2020_area_km2,\r\n ag_2020_mean: graphData.properties.ag_2020_mean,\r\n area_km : graphData.properties.area_km,\r\n trans_2013_area_km2: graphData.properties.trans_2013_area_km2,\r\n trans_2013_mean: graphData.properties.trans_2013_mean,\r\n trans_2016_area_km2: graphData.properties.trans_2016_area_km2,\r\n trans_2016_mean: graphData.properties.trans_2016_mean,\r\n trans_2020_area_km2: graphData.properties.trans_2020_area_km2,\r\n trans_2020_mean: graphData.properties.trans_2020_mean,\r\n urban_2013_area_km2: graphData.properties.urban_2013_area_km2,\r\n urban_2013_mean: graphData.properties.urban_2013_mean,\r\n urban_2016_area_km2: graphData.properties.urban_2016_area_km2,\r\n urban_2016_mean: graphData.properties.urban_2016_mean,\r\n urban_2020_area_km2: graphData.properties.urban_2020_area_km2,\r\n urban_2020_mean: graphData.properties.urban_2020_mean,\r\n })\r\n}\r\n}, [graphData]);\r\n\r\nconst data = [\r\n { date: \"2013\", Agriculture: Math.round(newGraphData.ag_2013_area_km2), Transportation: Math.round(newGraphData.trans_2013_area_km2), Energy: 0, Urban: Math.round(newGraphData.urban_2013_area_km2) },\r\n { date: \"2016\", Agriculture: Math.round(newGraphData.ag_2016_area_km2), Transportation: Math.round(newGraphData.trans_2016_area_km2), Energy: 0, Urban: Math.round(newGraphData.urban_2016_area_km2) },\r\n { date: \"2020\", Agriculture: Math.round(newGraphData.ag_2020_area_km2), Transportation: Math.round(newGraphData.trans_2020_area_km2), Energy: 0, Urban: Math.round(newGraphData.urban_2020_area_km2) },\r\n];\r\n\r\nconst data2 = [\r\n { date: \"2013\", Agriculture: Math.round(newGraphData.ag_2013_mean), Transportation: Math.round(newGraphData.trans_2013_mean), Energy: 0, Urban: Math.round(newGraphData.urban_2013_mean) },\r\n { date: \"2016\", Agriculture: Math.round(newGraphData.ag_2016_mean), Transportation: Math.round(newGraphData.trans_2016_mean), Energy: 0, Urban: Math.round(newGraphData.urban_2016_mean) },\r\n { date: \"2020\", Agriculture: Math.round(newGraphData.ag_2020_mean), Transportation: Math.round(newGraphData.trans_2020_mean), Energy: 0, Urban: Math.round(newGraphData.urban_2020_mean) },\r\n];\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n \r\n \r\n Percent of Land Impacted in {newGraphData.name}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n
\r\n
\r\n\r\n \r\n \r\n Anthropogenic Impact in {newGraphData.name}\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {/* */}\r\n \r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Map2Plots\r\n","import React, {useState} from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { Button, Link, Popper, Grow, Paper, ClickAwayListener, MenuList, MenuItem, Container, IconButton, useTheme, Drawer, AppBar, Toolbar, CssBaseline, Typography, Divider\r\n} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Project2_TechnicalSummary from \"../images/Project2_TechnicalSummary.pdf\";\r\nimport CountryRoad from \"../images/architecture.jpg\";\r\nimport Image from \"material-ui-image\";\r\n\r\n\r\n//Icons\r\nimport AssessmentIcon from \"@material-ui/icons/Assessment\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\r\nimport PublicIcon from \"@material-ui/icons/Public\";\r\n\r\n//Components\r\nimport Map2 from \"../components/Map2Components/Map2\";\r\nimport MapModal from \"../components/MapModal\";\r\nimport CopyUrlBtn from \"../components/CopyUrlBtn\";\r\nimport Map2Plots from \"../components/Map2Components/Map2Plots\";\r\nimport IntroModal from \"../components/IntroModal\";\r\n\r\nconst drawerWidth = 550;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n appBar: {\r\n transition: theme.transitions.create([\"margin\", \"width\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n // minHeight: \"7.1vh\",\r\n },\r\n appBarShift: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create([\"margin\", \"width\"], {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n marginRight: drawerWidth,\r\n },\r\n toolbar: {\r\n minHeight: \"48px\"\r\n },\r\n title: {\r\n flexGrow: 1,\r\n fontSize: \"23px\",\r\n [theme.breakpoints.down(\"md\")]: {\r\n fontSize: \"20px\",\r\n },\r\n [theme.breakpoints.down(\"xs\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n hide: {\r\n display: \"none\",\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n minHeight: \"92.9vh\",\r\n // 1920px\r\n [theme.breakpoints.down(\"xl\")]: {\r\n minHeight: \"99vh\",\r\n },\r\n // 1280px\r\n [theme.breakpoints.down(\"lg\")]: {\r\n minHeight: \"92.9vh\",\r\n },\r\n // 960px\r\n [theme.breakpoints.down(\"md\")]: {\r\n minHeight: \"92.9vh\",\r\n },\r\n // 600px\r\n [theme.breakpoints.down(\"sm\")]: {\r\n minHeight: \"92.9vh\",\r\n },\r\n // 0px\r\n [theme.breakpoints.down(\"xs\")]: {\r\n minHeight: \"93.8vh\",\r\n },\r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n backgroundColor: \"#CED8D7\",\r\n },\r\n drawerHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n justifyContent: \"flex-start\",\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(0),\r\n transition: theme.transitions.create(\"margin\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n marginRight: -drawerWidth,\r\n },\r\n contentShift: {\r\n transition: theme.transitions.create(\"margin\", {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n marginRight: 0,\r\n },\r\n beta: {\r\n color: \"#DEF000\",\r\n align: \"left\",\r\n },\r\n assessmentIcon: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function PersistentDrawerRight() {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [open, setOpen] = React.useState(false);\r\n const [graphData, setGraphData] = useState(null);\r\n\r\n const handleDrawerOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleDrawerClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const [open2, setOpen2] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n\r\n const handleToggle = () => {\r\n setOpen2((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n\r\n setOpen2(false);\r\n };\r\n\r\n function handleListKeyDown(event) {\r\n if (event.key === \"Tab\") {\r\n event.preventDefault();\r\n setOpen2(false);\r\n }\r\n }\r\n\r\n // return focus to the button when we transitioned from !open -> open\r\n const prevOpen = React.useRef(open2);\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && open2 === false) {\r\n anchorRef.current.focus();\r\n }\r\n\r\n prevOpen.current = open2;\r\n }, [open2]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n   Connectivity on Agricultural Lands\r\n \r\n \r\n \r\n \r\n \r\n   Anthropogenic Impacts\r\n \r\n \r\n \r\n \r\n \r\n   Monitoring Forest Change\r\n \r\n \r\n \r\n \r\n \r\n   Analytics Lab + AI for Earth\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n

\r\n Mediating human development and land-use related impacts is a\r\n crucial factor in conserving wild and endangered species of\r\n plants and animals worldwide. A primary and essential step in\r\n doing so is assessing the extent and degree of anthropogenic\r\n impacts and how they are changing over time. While data on\r\n such impacts are available from a variety of disparate\r\n sources, they are rarely available in a consistent and current\r\n representation over large areas. To remedy this, Conservation\r\n Science Partners in partnership with the Microsoft AI for\r\n Earth program are using cutting edge deep-learning methods and\r\n an extensive library of training data to assess anthropogenic\r\n impacts across the conterminous US and across decadal scales.\r\n The draft results shown here quantify the degree of urban\r\n development and will be refined and expanded to include other\r\n types of development, larger areas, and longer time periods.\r\n

\r\n

\r\n Download the technical summary and methods\r\n \r\n {\" \"}\r\n here.\r\n \r\n

\r\n \r\n \r\n }\r\n // modalImage={CountryRoad}\r\n style={{ paddingRight: \"3px\" }}\r\n >\r\n\r\n \r\n Assessing Anthropogenic Impacts on Terrestrial Landscapes Over Time\r\n \r\n\r\n \r\n

\r\n Mediating human development and land-use related impacts is a crucial factor in conserving wild and endangered species of plants and animals worldwide. A primary and essential step in doing so is assessing the extent and degree of anthropogenic impacts and how they are changing over time. While data on such impacts are available from a variety of sources, they rarely exist in a current and unified format over large areas. To remedy this, Conservation Science Partners in partnership with the Microsoft AI for Earth program are using cutting edge deep-learning methods and an extensive library of training data to assess anthropogenic impacts across the conterminous US and across decadal scales. The results shown here quantify the degree of agricultural, transportation, and urban impact in the conterminous U.S.\r\n

\r\n

\r\n Download the technical summary and methods here.\r\n

\r\n \r\n }>\r\n \r\n\r\n \r\n \r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Graphs\r\n \r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n \r\n
\r\n );\r\n}\r\n","export default __webpack_public_path__ + \"static/media/Disturbance.4c771f90.png\";","export default __webpack_public_path__ + \"static/media/Project3_TechnicalSummary.e8752ef0.pdf\";","import React from \"react\";\r\nimport {useState, useEffect} from 'react';\r\nimport {fromJS} from 'immutable';\r\nimport MAP_STYLE from './Map3Style.json';\r\nimport { withStyles} from \"@material-ui/styles\";\r\nimport { Grid, FormControlLabel, Switch, Tooltip, Typography, Slider, Radio, RadioGroup, Button, ButtonGroup } from \"@material-ui/core/\";\r\n\r\nconst defaultMapStyle = fromJS(MAP_STYLE);\r\nconst defaultLayers = defaultMapStyle.get('layers');\r\n\r\nconst PrettoSlider = withStyles({\r\n root: {\r\n color: \"rgb(190, 215, 71)\",\r\n height: 2,\r\n },\r\n thumb: {\r\n height: 16,\r\n width: 16,\r\n backgroundColor: \"#fff\",\r\n border: \"2px solid currentColor\",\r\n marginTop: -6,\r\n marginLeft: -7,\r\n \"&:focus, &:hover, &$active\": {\r\n boxShadow: \"inherit\",\r\n },\r\n },\r\n active: {},\r\n valueLabel: {\r\n left: \"calc(-50%)\",\r\n },\r\n track: {\r\n height: 6,\r\n borderRadius: 4,\r\n },\r\n rail: {\r\n height: 6,\r\n borderRadius: 4,\r\n },\r\n mark: {\r\n height: 11,\r\n },\r\n})(Slider);\r\n\r\nconst LayerTooltip = withStyles({\r\n tooltipPlacementRight: {\r\n left: \"6px\",\r\n },\r\n})(Tooltip);\r\n\r\nconst marks = [\r\n {\r\n value: 2016,\r\n label: \"'16\",\r\n },\r\n {\r\n value: 2017,\r\n label: \"'17\",\r\n },\r\n {\r\n value: 2018,\r\n label: \"'18\",\r\n },\r\n {\r\n value: 2019,\r\n label: \"'19\",\r\n },\r\n {\r\n value: 2020,\r\n label: \"'20\",\r\n },\r\n];\r\n\r\nfunction changeTheMap({visibility}, activeStyle, sliderValue, activeLayer, activeYear, switchState) {\r\n let layers = defaultLayers\r\n .filter(layer => {\r\n const style = layer.getIn([\"metadata\", \"style\"]);\r\n const disturbanceLayers = layer.getIn([\"metadata\", \"data\"]);\r\n const id = layer.get('id');\r\n const layerId = activeLayer + \" \" + activeYear;\r\n const overviewLayerId = \"Overview \" + activeLayer + \" \" + activeYear;\r\n\r\n if (switchState === true){\r\n if (id === layerId || id === overviewLayerId) {\r\n }\r\n return (\r\n visibility[id] || style === activeStyle || id === layerId || disturbanceLayers || id === overviewLayerId\r\n );\r\n } else {\r\n return (\r\n visibility[id] || style === activeStyle || id === layerId || id === overviewLayerId\r\n );\r\n }\r\n });\r\n layers = layers.map((layer) => {\r\n const style = layer.getIn([\"metadata\", \"style\"]);\r\n const type = layer.get(\"type\");\r\n const newPaintValue = sliderValue * 0.01;\r\n if (style === \"none\" && type === \"raster\") {\r\n layer = layer.setIn([\"paint\", \"raster-opacity\"], newPaintValue);\r\n }\r\n return layer;\r\n });\r\n\r\n return defaultMapStyle.set('layers', layers);\r\n}\r\n\r\nconst Map3Control = (props) => {\r\n \r\n const [visibility] = useState({\r\n // \"Forest Disturbance\": true,\r\n 'Ecoregions': true\r\n });\r\n const [activeStyle, setActiveStyle] = useState(\"darkSimple\");\r\n const [sliderValue, setSliderValue] = useState(75);\r\n const [activeYear, setActiveYear]= useState(\"2016\");\r\n const activeLayer = props.activeLayer;\r\n const setActiveLayer = props.setActiveLayer;\r\n const switchState = props.switchState;\r\n const setSwitchState = props.setSwitchState;\r\n\r\n\r\n useEffect(() => {\r\n props.onChange(changeTheMap({visibility}, activeStyle, sliderValue, activeLayer, activeYear, switchState));\r\n }, [visibility, activeStyle, sliderValue, activeLayer, activeYear, switchState]);\r\n\r\n return (\r\n
\r\n
\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Satellite\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Dark\r\n \r\n setActiveStyle(e.currentTarget.value)}\r\n >\r\n Light\r\n \r\n \r\n
\r\n\r\n
\r\n setActiveLayer(evt.target.value)}\r\n >\r\n

The degree of alteration of the natural environment through the planting and harvesting of crops as well as grazing impacts on pasturelands.

} arrow>\r\n }\r\n label=\"Canopy Cover\"\r\n />\r\n
\r\n\r\n

Forest biomass is the cumulative amount of wood mass of a tree aboveground. It is a common and important metric for carbon stock accounting, habitat quality assessment, and forest health.

} arrow>\r\n }\r\n label=\"Biomass\"\r\n />\r\n
\r\n\r\n

Forested basal area is a measure of forest density through taking the cross sectional area of trees within a sample, typically expressed in square feet of basal area per acre. Basal area impacts the fire hazard and risk, as well as the modeling of potential species distributions.

} arrow>\r\n }\r\n label=\"Basal Area\"\r\n />\r\n
\r\n\r\n

In this model, we classified pixels based on a labeling definition of ‘conifer’ or ‘deciduous’, if that type made up 80% of the composition in the area of a plot sample. A label of ‘mixed’ was assigned If there were not 80% trees of either conifer or deciduous type. A label of ‘dead’ was given to plots where 80% of the trees were recorded as standing dead. Pixels where no trees were estimated present were labeled as ‘none’.

} arrow>\r\n }\r\n label=\"Forest Type\"\r\n />\r\n
\r\n\r\n \r\n
\r\n\r\n
\r\n \r\n \r\n
\r\n

Year:

\r\n
\r\n
\r\n \r\n
\r\n
\r\n setActiveYear(value)}\r\n />\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n \r\n Opacity: {sliderValue}%\r\n \r\n {\r\n setSliderValue(value);\r\n }}\r\n />\r\n
\r\n\r\n
\r\n

This layer displays perimeters for wildland fire incidents that meet the following criteria:\r\n Categorized in the IRWIN (Integrated Reporting of Wildland Fire Information) integration service as a valid Wildfire (WF), Prescribed Fire (RX), or Incident Complex (CX) record with a Fire Discovery Date in the years of 2016-2020 by the Wildland Fire Interagency Geospatial Services (WFIGS) \r\n

} arrow>\r\n \r\n \r\n

Fire Boundary

\r\n
\r\n \r\n setSwitchState(evt.target.checked)}\r\n name=\"forestDisturbance\"\r\n inputProps={{ \"aria-label\": \"secondary checkbox\" }}\r\n />\r\n \r\n
\r\n
\r\n

*Select a red Fire Boundary to see graph data*

\r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default React.memo(Map3Control);\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n colorsConnect: {\r\n background:\r\n // top to bottom\r\n \"linear-gradient(#FDE724, #79D151, #22A784, #29788E, #404387, #440154)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function LegendCanopyCvr() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n

Canopy Cover

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n - 100%\r\n
\r\n

\r\n
\r\n - 80%\r\n
\r\n

\r\n
\r\n - 60%\r\n
\r\n

\r\n
\r\n - 40%\r\n
\r\n

\r\n
\r\n - 20%\r\n
\r\n

\r\n\r\n
\r\n - 0\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n colorsConnect: {\r\n background:\r\n // top to bottom\r\n \"linear-gradient(#FDE724, #79D151, #22A784, #29788E, #404387, #440154)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function LegendBasalArea() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n

Basal Area (ft²/acre)

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n - 350\r\n
\r\n

\r\n
\r\n - 280\r\n
\r\n

\r\n
\r\n - 210\r\n
\r\n

\r\n
\r\n - 140\r\n
\r\n

\r\n
\r\n - 70\r\n
\r\n

\r\n
\r\n - 0\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n colorsConnect: {\r\n background:\r\n // top to bottom\r\n \"linear-gradient(#FDE724, #79D151, #22A784, #29788E, #404387, #440154)\",\r\n marginBottom: \"5px\",\r\n },\r\n});\r\n\r\nexport default function LegendBiomass() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n \r\n \r\n

Biomass (Mg/ha)

\r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n - 350\r\n
\r\n

\r\n
\r\n - 280\r\n
\r\n

\r\n
\r\n - 210\r\n
\r\n

\r\n
\r\n - 140\r\n
\r\n

\r\n
\r\n - 70\r\n
\r\n

\r\n
\r\n - 0\r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","import React from \"react\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Grid from \"@material-ui/core/Grid\";\r\n\r\nconst useStyles = makeStyles({\r\n colorsNone: {\r\n background: \"#666666\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsConifer: {\r\n background: \"#74a33b\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsDeciduous: {\r\n backgroundColor: \"#cb6527\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsMixed: {\r\n backgroundColor: \"#dba93d\",\r\n marginBottom: \"5px\",\r\n },\r\n\r\n colorsDead: {\r\n backgroundColor: \"#373737\",\r\n marginBottom: \"5px\",\r\n }\r\n});\r\n\r\nexport default function LegendForestType() {\r\n const classes = useStyles();\r\n\r\n return (\r\n
\r\n
\r\n

Forest Types:

\r\n \r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Conifer\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Deciduous\r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n
\r\n \r\n
\r\n
\r\n \r\n
\r\n
\r\n \r\n Mixed\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n
\r\n );\r\n}\r\n","export const fireboundHighlight = {\r\n \"id\": \"Fire Boundaries Highlight\",\r\n \"source\": \"firebounds\",\r\n \"source-layer\": \"Fire_Region_Statistics_slimdata\",\r\n \"type\": \"fill\",\r\n \"layout\": {\r\n \"visibility\": \"visible\"\r\n },\r\n \"paint\": {\r\n \"fill-outline-color\": \"#f52c2c\",\r\n \"fill-color\": \"hsla(0, 91%, 57%, .4)\",\r\n },\r\n \"metadata\": {\r\n \"style\": \"none\",\r\n \"data\": \"forestDisturbance\"\r\n }\r\n}","import React, { useState, useMemo, useEffect } from \"react\";\r\nimport ReactMapGL, { _MapContext as MapContext, ScaleControl, NavigationControl, Popup, Source, Layer, WebMercatorViewport, LinearInterpolator} from \"react-map-gl\";\r\nimport Map3Control from './Map3Control';\r\nimport mapboxgl from \"mapbox-gl\";\r\nimport bbox from '@turf/bbox';\r\n\r\n//Components\r\nimport Logo from \"../Logo\";\r\nimport MapboxLogo from \"../mapboxLogo\";\r\nimport LegendCanopyCvr from \"./LegendCanopyCvr\";\r\nimport LegendBasalArea from \"./LegendBasalArea\";\r\nimport LegendBiomass from \"./LegendBiomass\";\r\nimport LegendForestType from \"./LegendForestType\";\r\nimport { fireboundHighlight } from \"./Map3FireStyle\";\r\nimport { MAPBOX_TOKEN } from \"../../config\";\r\n\r\n//CSS\r\nimport \"./Map3.css\";\r\n\r\n// eslint-disable-next-line import/no-webpack-loader-syntax\r\nmapboxgl.workerClass = require(\"worker-loader!mapbox-gl/dist/mapbox-gl-csp-worker\").default;\r\n\r\nconst mapboxToken = MAPBOX_TOKEN\r\n\r\nconst Map3 = (props) => {\r\n const [mapStyle, setMapStyle] = useState(\"\");\r\n const [switchState, setSwitchState] = useState(true);\r\n const [activeLayer, setActiveLayer] = useState(\"Canopy Cover\");\r\n\r\n const [viewport, setViewport] = useState({\r\n latitude: 38.89,\r\n longitude: -98.47,\r\n zoom: 3.95,\r\n bearing: 0,\r\n pitch: 0,\r\n });\r\n\r\n const navControlStyle = {\r\n right: 10,\r\n top: 11,\r\n };\r\n\r\n const scaleControlStyle = {\r\n right: 10,\r\n bottom: 108,\r\n };\r\n\r\n const [fireInfo, setFireInfo] = useState(null);\r\n const [fireStat, setFireStat] = useState(undefined);\r\n const graphData = props.graphData;\r\n const setGraphData = props.setGraphData;\r\n const setOpen = props.setOpen;\r\n\r\n const onClick = event => {\r\n console.log(\"onClick Event\", event)\r\n setGraphData({\r\n fireId: event.features[0] && event.features[0].properties.FID,\r\n canopyCoverMean16: event.features[0] && event.features[0].properties.mean_2016_canopycover,\r\n canopyCoverMean17: event.features[0] && event.features[0].properties.mean_2017_canopycover,\r\n canopyCoverMean18: event.features[0] && event.features[0].properties.mean_2018_canopycover,\r\n canopyCoverMean19: event.features[0] && event.features[0].properties.mean_2019_canopycover,\r\n canopyCoverMean20: event.features[0] && event.features[0].properties.mean_2020_canopycover,\r\n\r\n biomassSum16: event.features[0] && event.features[0].properties.mean_2016_biomass,\r\n biomassSum17: event.features[0] && event.features[0].properties.mean_2017_biomass,\r\n biomassSum18: event.features[0] && event.features[0].properties.mean_2018_biomass,\r\n biomassSum19: event.features[0] && event.features[0].properties.mean_2019_biomass,\r\n biomassSum20: event.features[0] && event.features[0].properties.mean_2020_biomass,\r\n\r\n basalMean16: event.features[0] && event.features[0].properties.mean_2016_basalarea,\r\n basalMean17: event.features[0] && event.features[0].properties.mean_2017_basalarea,\r\n basalMean18: event.features[0] && event.features[0].properties.mean_2018_basalarea,\r\n basalMean19: event.features[0] && event.features[0].properties.mean_2019_basalarea,\r\n basalMean20: event.features[0] && event.features[0].properties.mean_2020_basalarea,\r\n\r\n });\r\n setOpen(true);\r\n const feature = event.features[0];\r\n if (feature) {\r\n // calculate the bounding box of the feature\r\n const [minLng, minLat, maxLng, maxLat] = bbox(feature);\r\n // construct a viewport instance from the current state\r\n const vp = new WebMercatorViewport(viewport);\r\n const {longitude, latitude, zoom} = vp.fitBounds(\r\n [\r\n [minLng, minLat],\r\n [maxLng, maxLat]\r\n ],\r\n {\r\n padding: 200\r\n }\r\n );\r\n setViewport({\r\n ...viewport,\r\n longitude,\r\n latitude,\r\n zoom,\r\n transitionInterpolator: new LinearInterpolator({\r\n around: [event.offsetCenter.x, event.offsetCenter.y]\r\n }),\r\n transitionDuration: 1000\r\n });\r\n }\r\n }\r\n\r\n const selectedFire = (graphData && graphData.fireId) || '';\r\n const filter = useMemo(() => ['in', 'FID', selectedFire], [selectedFire]);\r\n\r\n const onHover = event => {\r\n setFireInfo({\r\n fireId: event.features[0] && event.features[0].properties.FID,\r\n longitude: event.lngLat[0],\r\n latitude: event.lngLat[1],\r\n year: event.features[0] && event.features[0].properties.FIRE_YEAR,\r\n incident: event.features[0] && event.features[0].properties.INCIDENT,\r\n acres: event.features[0] && event.features[0].properties.GIS_ACRES,\r\n agency: event.features[0] && event.features[0].properties.AGENCY\r\n })\r\n\r\n let fire = event.features[0]\r\n setFireStat(fire);\r\n };\r\n\r\n useEffect (() => {\r\n }, [fireStat, activeLayer, graphData])\r\n\r\n return (\r\n <>\r\n \r\n\r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n\r\n {fireStat !== undefined && (\r\n \r\n Year: {fireInfo.year}\r\n Incident: {fireInfo.incident}\r\n Acres burned: {fireInfo.acres}\r\n Source: {fireInfo.agency}\r\n \r\n )} \r\n\r\n
\r\n
\r\n {activeLayer === \"Canopy Cover\" && }\r\n {activeLayer === \"Biomass\" && }\r\n {activeLayer === \"Basal Area\" && }\r\n {activeLayer === \"Class\" && } \r\n {/* {switchState === true && } */}\r\n
\r\n
\r\n \r\n\r\n \r\n\r\n \r\n \r\n );\r\n};\r\n\r\nexport default Map3","import { Typography, Paper, Grid,} from '@material-ui/core';\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport React, {useState, useEffect} from 'react';\r\nimport {XAxis, YAxis, Label, PieChart, Pie, Cell} from 'recharts';\r\nimport {LineChart, Line, CartesianGrid, ResponsiveContainer, Tooltip} from \"recharts\";\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n flexGrow: 1,\r\n backgroundColor: \"#ced8d7\",\r\n paddingBottom: \"8px\"\r\n },\r\n lineGraphTitle1: {\r\n paddingTop: \"0px\",\r\n marginTop: \"8px\",\r\n },\r\n lineGraphTitle: {\r\n paddingTop: \"0px\",\r\n marginTop: \"0px\",\r\n },\r\n graphTitle: {\r\n paddingTop: \"8px\",\r\n marginBottom: \"0px\",\r\n },\r\n pieTitle: {\r\n paddingTop: \"15px\",\r\n marginTop: \"8px\",\r\n marginBottom: \"-22px\",\r\n textAlign: \"center\"\r\n },\r\n pieLabel: {\r\n paddingTop: \"0px\",\r\n marginTop: \"-15px\",\r\n marginBottom: \"2px\",\r\n textAlign: \"center\"\r\n },\r\n\r\n}));\r\n\r\nconst RADIAN = Math.PI / 180;\r\nconst renderCustomizedLabel = ({ cx, cy, midAngle, innerRadius, outerRadius, percent, index }) => {\r\n const radius = innerRadius + (outerRadius - innerRadius) * 0.5;\r\n const x = cx + radius * Math.cos(-midAngle * RADIAN);\r\n const y = cy + radius * Math.sin(-midAngle * RADIAN);\r\n\r\n return (\r\n cx ? 'start' : 'end'} dominantBaseline=\"central\">\r\n {`${(percent * 100).toFixed(0)}%`}\r\n \r\n );\r\n};\r\n\r\nconst Map3Plots = (props) => {\r\nconst classes = useStyles();\r\nlet graphData = props.graphData;\r\nconst [newGraphData, setNewGraphData] = useState([]);\r\nconst [pieData, setPieData] = useState([]);\r\n\r\nuseEffect (() => {\r\n if (graphData !== null) {\r\n setNewGraphData([\r\n {\r\n date: 2016,\r\n canopy: graphData.canopyCoverMean16,\r\n biomass: graphData.biomassSum16,\r\n basal: graphData.basalMean16\r\n },\r\n {\r\n date: 2017,\r\n canopy: graphData.canopyCoverMean17,\r\n biomass: graphData.biomassSum17,\r\n basal: graphData.basalMean17\r\n },\r\n {\r\n date: 2018,\r\n canopy: graphData.canopyCoverMean18,\r\n biomass: graphData.biomassSum18,\r\n basal: graphData.basalMean18\r\n },\r\n {\r\n date: 2019,\r\n canopy: graphData.canopyCoverMean19,\r\n biomass: graphData.biomassSum19,\r\n basal: graphData.basalMean19\r\n },\r\n {\r\n date: 2020,\r\n canopy: graphData.canopyCoverMean20,\r\n biomass: graphData.biomassSum20,\r\n basal: graphData.basalMean20\r\n },\r\n ]);\r\n }\r\n}, [graphData])\r\n\r\nuseEffect (() => {\r\n if (graphData !== null) {\r\n let intRemaining = Math.round((parseFloat(graphData.biomassSum20)/parseFloat(graphData.biomassSum16))*100)\r\n let intLost = Math.round((parseFloat(graphData.biomassSum16 - graphData.biomassSum20))/(parseFloat(graphData.biomassSum16))*100)\r\n if (intLost > 0) {\r\n setPieData ([\r\n { name: \"Biomass Lost (%)\", value: (Math.round((parseFloat(graphData.biomassSum16 - graphData.biomassSum20))/(parseFloat(graphData.biomassSum16))*100)) },\r\n { name: \"Remaining Biomass (%)\", value: Math.round((parseFloat(graphData.biomassSum20)/parseFloat(graphData.biomassSum16))*100) },\r\n ])\r\n } else {\r\n setPieData([\r\n { name: \"Biomass Lost (%)\", value: 0 },\r\n { name: \"Remaining Biomass (%)\", value: Math.round((parseFloat(graphData.biomassSum20)/parseFloat(graphData.biomassSum16))*100) },\r\n ])\r\n }\r\n }\r\n}, [graphData])\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n {/* Select a red Fire Zone on the map to see the statistics}> */}\r\n \r\n Change Over Time in Selected Fire Boundaries\r\n \r\n {/* */}\r\n \r\n Canopy Cover\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Biomass\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n Basal Area\r\n \r\n\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n
\r\n\r\n \r\n \r\n \r\n Change in Forested Biomass\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n *Only comparing 2016 and 2020 data\r\n \r\n \r\n \r\n\r\n \r\n \r\n Total Change in Canopy Cover\r\n {graphData !== null && (\r\n {(parseInt(graphData.canopyCoverMean18) - parseInt(graphData.canopyCoverMean16))} %\r\n )}\r\n \r\n\r\n \r\n Total Change in Biomass\r\n {graphData !== null && (\r\n {(parseInt(graphData.biomassSum18) - parseInt(graphData.biomassSum16))} Mg/ha\r\n )}\r\n \r\n\r\n \r\n Total Change in Basal Area\r\n {graphData !== null && (\r\n {(parseInt(graphData.basalMean18) - parseInt(graphData.basalMean16))} ft²/acre\r\n )}\r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default Map3Plots\r\n","import React, {useState} from \"react\";\r\nimport clsx from \"clsx\";\r\nimport { Button, Popper, Grow, Paper, ClickAwayListener, MenuList, MenuItem, Container, Link, IconButton, useTheme, Drawer, AppBar, Toolbar, CssBaseline, Typography, Divider, Grid} from \"@material-ui/core\";\r\nimport { makeStyles } from \"@material-ui/styles\";\r\nimport Disturbance from \"../images/Disturbance.png\";\r\nimport Project3_TechnicalSummary from \"../images/Project3_TechnicalSummary.pdf\";\r\nimport Image from \"material-ui-image\";\r\n\r\n//Icons\r\nimport AssessmentIcon from \"@material-ui/icons/Assessment\";\r\nimport ChevronLeftIcon from \"@material-ui/icons/ChevronLeft\";\r\nimport ChevronRightIcon from \"@material-ui/icons/ChevronRight\";\r\nimport MenuIcon from \"@material-ui/icons/Menu\";\r\nimport ExitToAppIcon from \"@material-ui/icons/ExitToApp\";\r\nimport PublicIcon from \"@material-ui/icons/Public\";\r\nimport InfoIcon from \"@material-ui/icons/Info\";\r\n\r\n//Components\r\nimport Map3 from \"../components/Map3Components/Map3\";\r\nimport Map3Plots from \"../components/Map3Components/Map3Plots\"\r\nimport MapModal from \"../components/MapModal\";\r\nimport CopyUrlBtn from \"../components/CopyUrlBtn\";\r\nimport Logo from \"../components/Logo\";\r\nimport IntroModal from \"../components/IntroModal\";\r\n\r\nconst drawerWidth = 550;\r\n\r\nconst useStyles = makeStyles((theme) => ({\r\n root: {\r\n display: \"flex\",\r\n },\r\n appBar: {\r\n transition: theme.transitions.create([\"margin\", \"width\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n // minHeight: \"7.1vh\",\r\n },\r\n appBarShift: {\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create([\"margin\", \"width\"], {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n marginRight: drawerWidth,\r\n },\r\n toolbar: {\r\n minHeight: \"48px\"\r\n },\r\n title: {\r\n flexGrow: 1,\r\n fontSize: \"23px\",\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n hide: {\r\n display: \"none\",\r\n },\r\n drawer: {\r\n width: drawerWidth,\r\n flexShrink: 0,\r\n minHeight: \"92.9vh\",\r\n //1920 and up\r\n [theme.breakpoints.up(\"xl\")]: {\r\n minHeight: \"99vh\",\r\n },\r\n // 1920px and down\r\n [theme.breakpoints.down(\"xl\")]: {\r\n minHeight: \"99vh\",\r\n },\r\n // 1280px and down\r\n [theme.breakpoints.down(\"lg\")]: {\r\n minHeight: \"92.9vh\",\r\n },\r\n // 960px and down\r\n [theme.breakpoints.down(\"md\")]: {\r\n minHeight: \"92.9vh\",\r\n },\r\n // 600px and down\r\n [theme.breakpoints.down(\"sm\")]: {\r\n minHeight: \"92.9vh\",\r\n },\r\n // 0px\r\n [theme.breakpoints.down(\"xs\")]: {\r\n minHeight: \"93.8vh\",\r\n },\r\n \r\n },\r\n drawerPaper: {\r\n width: drawerWidth,\r\n backgroundColor: \"#CED8D7\",\r\n },\r\n drawerHeader: {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n justifyContent: \"flex-start\",\r\n },\r\n content: {\r\n flexGrow: 1,\r\n padding: theme.spacing(0),\r\n transition: theme.transitions.create(\"margin\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n marginRight: -drawerWidth,\r\n },\r\n contentShift: {\r\n transition: theme.transitions.create(\"margin\", {\r\n easing: theme.transitions.easing.easeOut,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n marginRight: 0,\r\n },\r\n beta: {\r\n color: \"#DEF000\",\r\n align: \"left\",\r\n },\r\n assessmentIcon: {\r\n [theme.breakpoints.down(\"sm\")]: {\r\n display: \"none\",\r\n },\r\n },\r\n}));\r\n\r\nexport default function PersistentDrawerRight() {\r\n const classes = useStyles();\r\n const theme = useTheme();\r\n const [open, setOpen] = React.useState(false);\r\n const [open2, setOpen2] = React.useState(false);\r\n const anchorRef = React.useRef(null);\r\n const [graphData, setGraphData] = useState(null);\r\n\r\n const handleDrawerOpen = () => {\r\n setOpen(true);\r\n };\r\n\r\n const handleDrawerClose = () => {\r\n setOpen(false);\r\n };\r\n\r\n const handleToggle = () => {\r\n setOpen2((prevOpen) => !prevOpen);\r\n };\r\n\r\n const handleClose = (event) => {\r\n if (anchorRef.current && anchorRef.current.contains(event.target)) {\r\n return;\r\n }\r\n setOpen2(false);\r\n };\r\n\r\n function handleListKeyDown(event) {\r\n if (event.key === \"Tab\") {\r\n event.preventDefault();\r\n setOpen2(false);\r\n }\r\n }\r\n\r\n // return focus to the button when we transitioned from !open -> open\r\n const prevOpen = React.useRef(open2);\r\n React.useEffect(() => {\r\n if (prevOpen.current === true && open2 === false) {\r\n anchorRef.current.focus();\r\n }\r\n\r\n prevOpen.current = open2;\r\n }, [open2]);\r\n\r\n return (\r\n
\r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n {({ TransitionProps, placement }) => (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n   Connectivity on Agricultural Lands\r\n \r\n \r\n \r\n \r\n \r\n   Anthropogenic Impacts\r\n \r\n \r\n \r\n \r\n \r\n   Monitoring Forest Change\r\n \r\n \r\n \r\n \r\n \r\n   Analytics Lab + AI for Earth\r\n \r\n \r\n \r\n \r\n \r\n \r\n )}\r\n \r\n
\r\n\r\n
\r\n \r\n
\r\n\r\n \r\n

\r\n Forest structure is a vital metric in ecological studies for\r\n delineating habitat location, condition, vulnerability, and\r\n connectivity for numerous species and biological processes of\r\n concern. This app provides a continually updating platform to\r\n monitor and understand how forest disturbances such as fire,\r\n insects, disease, and human land use are changing our natural\r\n environment. The beta version of this app is displaying data\r\n only for portions of California and Nevada, with\r\n national-level data forthcoming.\r\n

\r\n

\r\n This map utilizes a state-of-the-art multi-task recurrent\r\n convolutional neural network to integrate multiple data types\r\n from various Earth observation sensors to estimate forest\r\n structure metrics. The development and deployment of this AI\r\n model was made possible with support from Microsoft AI for\r\n Earth using Azure Blob Storage, Azure Open Datasets, AzureML,\r\n Azure Kubernetes Service and Azure Compute Virtual Machines.\r\n

\r\n

\r\n Download the technical summary and methods\r\n \r\n {\" \"}\r\n here.\r\n \r\n

\r\n \r\n\r\n \r\n }\r\n style={{ paddingRight: \"3px\" }}\r\n >\r\n\r\n \r\n Monitoring U.S. Forest Change at Scale with AI\r\n \r\n\r\n {/* \r\n BETA\r\n */}\r\n\r\n \r\n

\r\n Welcome to the forest structural change map. This map displays outputs from CSP Analytics Lab’s latest AI model utilizing remotely sensed data served on Microsoft Planetary Computer to estimate annual forest structure metrics. By mapping the components of forest structure over time, we can observe the changes in forest canopy cover percentage, forested biomass, and basal area (forest tree density). Monitoring changes in these metrics by disturbance areas such as wildfire can allow forest managers to understand what was lost and how long it takes for a region to recover. All forest metrics are estimated within a 30m x 30m pixel area.\r\n

\r\n \r\n }\r\n >\r\n\r\n \r\n\r\n \r\n\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n {theme.direction === \"rtl\" ? (\r\n \r\n ) : (\r\n <>\r\n \r\n \r\n )}\r\n \r\n \r\n \r\n Graphs\r\n \r\n \r\n
\r\n \r\n {/*
\r\n





\r\n
\r\n Data is currently being analyzed, plots and graphs coming soon!\r\n
\r\n
*/}\r\n \r\n\r\n \r\n
\r\n );\r\n}","import React from \"react\";\r\nimport { BrowserRouter as Router, Route, Switch } from \"react-router-dom\";\r\nimport Project1 from \"./pages/Project1\";\r\nimport Project2 from \"./pages/Project2\";\r\nimport Project3 from \"./pages/Project3\";\r\n\r\nimport './App.css';\r\n\r\n\r\n\r\nfunction App() {\r\n return (\r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
\r\n
\r\n );\r\n}\r\n\r\nexport default App;\r\n","import { createMuiTheme } from \"@material-ui/core/styles\";\r\n\r\n// Based on CSP aesthetics Guide\r\n\r\nconst theme = createMuiTheme({\r\n palette: {\r\n primary: {\r\n main: \"#636466\", //AL Grey\r\n // main: \"rgb(0, 73, 131)\", //CSP Blue\r\n light: \"rgb(81, 118, 164)\", //Denim Blue\r\n contrastText: \"#ffffff\", //white\r\n },\r\n secondary: {\r\n main: \"rgb(190, 215, 71)\", //Bright Green\r\n light: \"rgb(206, 216, 215)\", //pale grey-green\r\n dark: \"rgb(107, 179, 150)\", //blue tinted forest green\r\n contrastText: \"#000000\", //black\r\n },\r\n error: {\r\n light: \"rgb(207, 31, 837)\", //red\r\n main: \"rgb(226, 85, 38)\", //dark tangerine\r\n dark: \"rgb(26, 32, 44)\", //black\r\n contrastText: \"#fffff\", //white\r\n },\r\n initial: {\r\n main: \"#cccccc\", //light grey\r\n contrastText: \"#000000\", //black\r\n },\r\n },\r\n contrastThreshold: 3,\r\n tonalOffset: 0.2,\r\n // typography: {\r\n // fontFamily: \"Roboto\",\r\n // }\r\n});\r\n\r\nexport default theme;\r\n","import React from 'react';\r\nimport ReactDOM from 'react-dom';\r\nimport App from './App';\r\nimport { ThemeProvider } from \"@material-ui/styles\";\r\nimport theme from \"./theme\"\r\nimport \"bootstrap/dist/css/bootstrap.min.css\";\r\n\r\n\r\nReactDOM.render(\r\n // \r\n \r\n \r\n ,\r\n // ,\r\n document.getElementById(\"root\")\r\n);"],"sourceRoot":""}