{"action":"created","comment":{"url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/comments/67539957","id":67539957,"diff_hunk":"@@ -0,0 +1,238 @@\n+---\n+layout: index\n+title: Agriculture, Land-Use, and Bioenergy\n+gcam-version: v4.2 \n+---\n+\n+In GCAM 4.2, the model data for the agriculture and land use parts of the model is comprised of 283 subregions in terms of land use, based on a division of the extant agro-ecological zones (AEZs), which we derived from work performed for the GTAP project (Monfreda et al, 2009), within each of GCAM’s 32 global geo-political regions. Within each of these 283 subregions, land is categorized into approximately a dozen types based on cover and use. Some of these types, such as tundra and desert, are not considered arable. Among arable land types, further divisions are made for lands historically in non-commercial uses such as forests and grasslands as well as commercial forestlands and croplands. Production of approximately twenty crops is currently modeled, with yields of each specific to each of the 283 subregions. The model is designed to allow specification of different options for future crop management for each crop in each subregion.\n+\n+## AgLU Inputs and Outputs\n+\n+This section briefly summarized inputs and outputs, including data sources, spatial and temporal resolution. A more complete description of data is available at: http://www.pnl.gov/main/publications/external/technical_reports/PNNL-21025.pdf.\n+\n+### Inputs\n+\n+GCAM's inputs include information on production, consumption, prices, land, carbon, and other emissions in the historical period. GCAM requires globally consistent data sets for each of its historical model periods. The GCAM data system can produce such data sets annually beginning in 1971. Currently, GCAM uses data from 1990, 2005, and 2010 to initialize the model, but could be initialized to any year beginning in 1971.\n+\n+*Production.* Inputs include production of all crops and forestry products for each of the 283 AgLU regions. We currently rely on a blend of FAO and GTAP data for these inputs. FAO includes country-level data over the entire historical period, while GCAM has sub-national information for a single year in time.\n+\n+*Consumption.* Inputs include food, non-food, bioenergy, and feed consumption of all crop and forestry products for each of the 32 geopolitical regions. We currently rely on IMAGE for animal feed and FAO data for all remaining inputs.\n+\n+*Prices.* Inputs include the price of all food, feed, and forestry commodities. We currently use producer prices from FAO for these inputs.\n+\n+*Land.* Inputs include land cover and land use for each of the GCAM land types and AgLU regions. We use information beginning in 1700 in order to spin-up the carbon cycle within GCAM. Currently, we use a blend of the Hurtt-Hyde land cover product from CMIP5, the SAGE potential vegetation map, and FAO/GTAP cropland area. \n+\n+*Carbon.* Inputs include potential vegetation and soil carbon density (i.e., carbon density if the land grew to equilibrium) and a mature age. Currently, we derive vegetation carbon densities for crops from the FAO computed crop yield. All other carbon densities and mature ages come from Houghton (1999) and King (1997).\n+\n+*Other Emissions.* Inputs include emissions of all non-CO<sub>2</sub> gases and species for each year and region. Data for BC and OC is from the RCP inventory (Lamarque et al., 2011). Data for all other gases and species is from EDGAR (European Commission, 2010).\n+\n+### Outputs\n+\n+GCAM's outputs include variables related to production, consumption, prices, land, carbon, and other emissions. \n+\n+*Production.* Outputs include production of all crops and forestry products; this information is calculated annually for each of the 283 AgLU regions. GCAM also calculates production of livestock at the 32 region level.\n+\n+*Consumption.* Outputs include food, non-food, bioenergy, and feed consumption of all crop, forestry, livestock, and bioenergy products; this information is calculated annually for each of the 32 geopolitical regions.\n+\n+*Prices.* Outputs include the price of all food, feed, forestry, bioenergy and livestock commodities. This information is calculated annually, typically at a global level; however, some commodities (e.g., livestock) have regional prices (32-region level).\n+\n+*Land.* Outputs include land use and land cover for each of the land types included in GCAM (see Figure 2). This information is calculated annually for each of the 283 AgLU regions.\n+\n+*Carbon.* Outputs include carbon stock and land-use change emissions of CO<sub>2</sub>. This information is calculated annually for each of the 283 AgLU regions.\n+\n+*Other emissions.* Outputs include emissions of CH<sub>4</sub>, N<sub>2</sub>O, NH<sub>3</sub>, SO<sub>2</sub>, CO, BC, OC, and NO<sub>x</sub>. Greenhouse gas emissions are produced from livestock, rice, and fertilizer application; these emissions can be reduced with the application of a carbon price. Pollutant emissions are produced from agricultural waste burning, forest fires, deforestation, and savannah burning. Livestock emissions are calculated annually at the 32 region level. All other emissions are calculated annually at the 283 region level.\n+\n+\n+## Economic Modeling Approach\n+\n+In this section, we describe and discuss the approach we have developed for the economic modeling of agriculture, forestry, and land use in the Global Change Assessment Model (GCAM). We discuss the math determining land allocation in the model, as well as its interpretation. We explain the land nesting strategy and its implications, the math used in calibrating the model, and the types of data required for calibration (the data itself is discussed in later sections). We finish this section with an explanation and discussion of methods for introducing new crops and technologies into the competition beyond the calibration year. More information, including a comparison to other models, is available in Wise et al. (2014).\n+\n+### Land Sharing Approach\n+\n+Economic land use decisions in GCAM are based on a logit model of sharing based on relative inherent profitability of using land for competing purposes. The logit approach was developed my McFadden (1974) to describe the distribution of consumer choice, but a similar mathematical approach works well here for our purposes. The interpretation of this sharing system in GCAM is that there is a distribution of profit behind each competing land use within a region, rather than a single point value. Each competing land use option has a potential average profit over its entire distribution. The share of land allocated to any given use is based on the probability that that use has a highest profit among the competing uses. The relative potential average profits are used in the logit formulation, where an option with a higher average profit will get a higher share than one with a lower average profit. However, at the margin, the profits of competing options are equal. In essence, the sharing can therefore be considered optimal, but the assumption of a distribution of profits makes it very different from a constrained linear optimization approach.\n+\n+In GCAM, competing uses of land are nested within land nodes. Within each land node, it is generally assumed to be easier to substitute products, so logit exponents are higher to indicate tighter competition. Examples include switching food crops from one to another and converting forests from unmanaged categories to logging forests. Substitution across land nodes is also allowed but is assumed to be more difficult than within land nodes.  We implement this philosophy by setting lower logit exponents via input data. For example, the expansion of cropland into pasture is more difficult than expansion of wheat land into corn land.\n+\n+Although relative average profit rates are used in the logit sharing equations, the theory behind the math is that land shares are determined so the land is allocated across uses up until the point at which the marginal profit rates are equal to each other.  Therefore, the land values at the margin are also equal. As a result, all land uses within a nesting structure have equal value at the margin and further substitution will not increase total profits. If one option has a higher potential average profit rate than a second, it is assumed that option has a greater proportion of its distribution of profit rates that will exceed the marginal profit rate than the second option.  Therefore, this option will receive a higher share, but unlike a simple optimization model it will not get all of the land in the node.\n+\n+### Land Nesting Strategy\n+\n+The strategy for nesting competing land uses and nesting nests of competing land uses has involved some expert judgment, as does the choice of logit exponents that govern substitution within each of the level of the nesting structure. Note that calibration and reproduction of historical results does not depend on the nesting strategy or the logit exponents used. Instead, these assumptions affect future period results as conditions or policies change from history.\n+\n+Before discussing our nesting approach, it is useful to consider the space of possible nesting strategies. One approach is that of a single nest: the assumption that the land regions are small enough that all competing options are equally substitutable.  This assumption implies that it is just as easy to switch from forest to wheat as it is to switch from corn to wheat. However, this conversion would not happen unless wheat was more profitable than forest or corn.  With a high enough logit exponent for this single nest, the land sharing approaches an optimal “winner-take-all” result in that all land within a region will be dedicated to the most profitable product in that region. A single nest with a high exponent represents the extreme end of unconstrained optimization in which there is no transition cost or other hurdle for switching from one land type to another.\n+\n+The other extreme is that of no substitution. This would be accomplished with near zero or zero logit exponents, whether in a single nest or multiple nests. This implies that either it is physically impossible or the transition costs are too high to allow switching from one land type to another. Currently, in GCAM, we use zero logit exponents in a very limited number of situations, where we do not want any substitution (e.g., we do not allow cropland to expand into desert or tundra).  However, in most situations, we employ positive logit exponents and allow economics to dictate the land allocation within a region. \n+\n+Our approach is to use a nesting strategy that allows the logit exponents to reflect differences in substitutability across land categories. Figure 2 shows the nesting diagram of land with an AEZ subregion. At the top is all land, which is divided into two main types of nodes: agro-forestry land and the remaining categories of land that are not suitable for agriculture. This second category could be divided further if useful. The next node layer contains two further nodes: all agro-forestry, non-pasture land and all pasture land. The pasture land node contains two competing uses (land leaves in the code): managed pasture (that which feeds marketed livestock) and unmanaged pasture.\n+\n+*Figure 2: AgLU Land Nest* \n+\n+![Figure 2](./AgLUTree.bmp)\n+\n+The agro-forestry (non-pasture) node contains three competing nodes: shrub and grass lands, forest lands, and croplands. Shrublands and grasslands are separated from the rest as they are both classified as unmanaged land categories and we want to control their substitutability between each other separately. Finally, the forestland node competes with the total cropland node. Within forestland, there are managed and unmanaged forest leaves,  and we have added a woody biomass option there in some regions and scenarios. Under cropland are all food and other agriculture products (e.g., corn, wheat, sugars, etc.), including biomass crops, along with an unmanaged land category called other arable land. Note that several crops are included explicitly in the CropLand node, and the grouping of “AllOtherCrops” is simply a convenience for this figure.\n+\n+With the specification above, we can make substitution across categories more or less difficult by choosing lower or higher logit parameters. We can also effectively combine nests by making the logit exponents the same. For example, if we assign the same logit exponent for each level, this is equivalent to putting all uses under one nest.  One implication of having equal exponents is that it would not matter in which node we placed new crop options like biomass.\n+\n+## Calibration\n+\n+While the profit-based logit land sharing is fairly straightforward, it must be calibrated to match historical data on land use shares, crop yields, costs, and land prices in the base year. The calibration method is algebraically simple, but it can be difficult conceptually. The aim of the calibration is to infer distributions and underlying parameters from the historical data. Based on the logit model chosen, including nesting and exponents, underlying economic values of the various land types are implied from the real world shares of each land. \n+\n+For calibration, base year data sets must include values of physical results such as land use, agriculture and forest production, demand for all agricultural and forestry products, product yields per unit of land, and other data such as carbon densities. The calibration data also needs to include product prices and land prices. \n+\n+The approach to calibration is to solve for parameters that adjust observed profit rates, which are based on base year data, such that they equal the potential average profit rates implied by base year shares and the assumed average price of unmanaged land. The potential average profit rates implied by the shares can be interpreted as the average profit if all land were devoted to that use. Here, we will refer to these rates as the calibration profit rates. The calibration parameters, which we have called calibration profit scalers in the code, should not be confused with the logit share weights that we use in the energy model. They serve much the same function, but their derivation is more complicated, and they should not be assumed to be transformable. Unlike the share weights, the absolute values of the calibration profit scalers have meaning, not just their relative values. Therefore, they cannot be transformed by indexing them around a value of one for convenience like we can do with the share weights in the energy sector.\n+\n+In future model periods, the calibration profit scalers are used to adjust the future profit rates in the logit sharing and profit equations. The calibration routine ensures that the future is grounded in history. If prices, demand, and crop yields were unchanged in future modeling periods, shares, profits, and land allocations would equal the base year values. When future conditions evolve in the model such that costs, prices, yields, and other factors deviate from historical values, shares and profits will also change from their base year values. \n+\n+## Variable Costs\n+\n+Variable costs are defined here as the non-land costs of crop production, per-unit of crop.  Variable costs set hard price floors in the model: production goes to zero when price is less than or equal to the variable costs. As a result, these costs should be interpreted as pure minimum or shut-down costs. They should be just the cost of materials and hired labor for producing a crop or product with a given technology in a subregion. \n+\n+Value-added categories should not be included in the variable costs. In addition, variable costs should not include land costs, as the model is based on allocating land on per unit profits. They should also not include cost categories that represent return to capital or profits. We can assume these costs are captured in the distribution of profit rates behind the logit. Otherwise, consider that if these costs are put into our variable costs, ultimately all marginal profit rates (from economic theory) would be zero and provide no value to our modeling. In addition, accounting costs such as depreciation should not be part of variable costs.\n+\n+Data on labor costs can be difficult to use, since some farm wage categories are income that the farmer either earns or expects to be paid and thus, some labor costs are really profit to the land-owner (i.e., farmer). Therefore, we have restricted our variable cost data to include what is labeled as “hired labor”.\n+\n+Note that introducing variable costs that differ by region can result in unintended consequences. Different variable costs create different price floors, which can result in a region ceasing production of a particular product if technical change lowers the global product price significantly (i.e., to a point where the variable cost is less than the price received). \n+\n+The main points can be summarized as:\n+\n+* Variable costs create price floors\n+* Variable costs should be based on technology data. They should not be used as calibration parameters to adjust profits.\n+* Variable costs should not include value-added categories of land, return to capital, and owner-wages.\n+\n+### New Land Types\n+\n+The calibration process can accommodate gaps or imprecisions of the price and cost data for the crops and land uses in base year calibration data set. Changing the values of inputs such as land prices, product prices, and product variable costs will change the values of the calibration parameters internal to the model. Algebraically, the calibration parameters adjust or compensate to make the profit rates consistent with the base year shares and crop yields. In most situations, these changes will not affect model results either in the calibration year or future years. The calibration is to an extent self-correcting.\n+\n+However, there are a few important exceptions to this rule.  First, as previously noted, variable costs introduce price floors and thus, increasing these values may result in some regions ceasing production in future years.  Second, exceptions occur when we introduce crops, technologies, or policies that are not part of the base year calibration data set. One example is when new biomass crops are introduced. To introduce a new crop or a new crop technology, the model has to evaluate how its profitability compares to all other crops and uses of land. In this case, the actual values of the prices and costs that determine profits do matter. In the biomass example, it is important not only to have the variable costs and yields of the biomass correct, we also have to have the magnitudes of the profits of the competing crops correct for the competition to be valid. That means we have to have the prices and costs for all of the crops correct. Calibration cannot compensate for this problem. \n+\n+The same would be true for introducing new technologies for growing existing crops that are part of the calibration data set. For example, if we introduce a new management technique for growing corn to compete with the existing technique, the variable costs for both the new technology and the existing technology would have to be correct for the competition to be valid.\n+\n+Land prices are for the most part factored out by the calibration. They behave almost like numeraires, with at least one important exception. Land prices, along with land shares, set the values for unmanaged land categories. At the margin, we assume the value of unmanaged land is equal to the land price. This is of course also true of managed land categories, but unmanaged lands are special in that they do not produce a product other than this intrinsic value represented by the land price. The land price becomes important when we introduce a carbon subsidy on land, as the amount of the subsidy relative to the land price will determine its impact. For example, if the land price is high, a carbon subsidy may have a small impact on the relative value of unmanaged land. However, if the land price is low, the same carbon subsidy will have a higher relative impact on the value of unmanaged land. We see this effect in the model where there is a greater response to a carbon subsidy in regions with lower land prices.\n+\n+### Crop Outliers: The Special but Common Case of a High-Yielding Crop in a Very Small Section of a Region\n+\n+There are many places in the crop production data where a small amount of land produces a crop at a high yield that is not representative of the potential yield of that region. Some of these cases are data errors, but some cases are real observations where crop production is intensively managed or irrigated. In the current calibration data set, the amount of food, fiber, and fodder produced in these high-yielding regions is small relative to regional or global crop production.  Through the calibration process, we have ensured that the model cannot expand that these high-yielding crops throughout that region without substantial costs.\n+\n+For example, the current data set has very high-yielding wheat in the panhandle of Alaska.  The data suggest that there is a very small amount of land producing wheat with a very high yield.  This wheat land accounts for a small share of cropland in that AEZ.  Because the share of cropland is low, the calibration process will compute parameters that reflect limitations on the potential expansion of this land due to cost or factors not otherwise modeled.  Literally, the math will calculate very low profit share scalers for wheat in Alaska.  This also is the case if wheat share of cropland is high but the cropland share of arable land is low, implying something is preventing cropland from expanding.  Perhaps the real world cropland extent reflects something about the soil quality that is not explicitly modeled in AgLU.\n+\n+### Regional Production and Comparative Advantage\n+\n+In its determination of the economic allocation of crop production and land use across regions of the globe, GCAM follows the well-known but often misunderstood basic economic principle of comparative advantage. The theory of comparative advantage was identified and explained by David Ricardo in the early 19th Century to explain patterns in the study of international production and trade (Samuelson and Nordhaus, 2004). In simplest terms, countries or regions will produce more of what they are better at and import more of what they are not as good at producing. \n+\n+This appears obvious, but the distinction between comparative advantage and an “absolute” advantage is often confused. First, consider a situation of two crop products, Crop 1 and Crop 2 produced in two countries, A and B. The solution is trivial if Country A produces Crop 1 better (at a higher profit) than Country B while Country B produces Crop 2 better than Country A. In this example, Country A will tend to produce more of Crop 1 to export to Country B while importing more of Crop 2 from Country B, and the world is better off from the trade. Although the principle of comparative advantage is satisfied here, the fact that it also a situation of absolute advantage trivializes the concept and is not fully explanatory. \n+\n+To clarify the distinction between absolute and comparative advantage, consider a more realistic situation in which Region A has higher yields and lower costs of producing both Crop 1 and Crop 2 than Region B: Region A has an absolute advantage over Region B in both crops. Does that mean Region A will grow both crops and Region B will grow nothing?  Clearly not. Assume that Crop 1 has a much higher value or price than Crop 2. The comparative advantage solution is that will be that Region A will maximize it profits by growing more of Crop 1 and exporting it to Region B. This will leave a market opportunity for Region B to specialize in Crop 2 and export it to Region A. Region B has a comparative advantage in Crop 2 and thus have higher profits than if it grew Crop 1, for which it would not be competitive with Region A.\n+\n+The GCAM representation of global land and allocation is much more complicated than this simple example in modeling economic decisions as it assumes a distribution of profit rates over land areas and must be calibrated to reflect real-world data where regions grow a mix of crops rather than completely specializing. However, the simple example above is relevant and powerful in interpreting GCAM’s approach and results. Within each land use subregion in GCAM, economic uses of land are allocated based on that subregion’s own relative profit rate distributions of agriculture, forestry, and other competing uses for land. In essence, this means that land use allocations are based on comparative advantage rather than absolute advantage. Within a land subregion, land use allocations are based on what it can earn the higher profit rates among its own set of options, not what its yields or its profit rates are compared with the rest of the globe.  That is, a farmer in an individual region will choose to grow the crop that results in the highest profit, regardless of how his profit/yield for that crop compares to the profit/yield of that crop in other regions.\n+\n+Consider the example of a future scenario with a high global demand for a bioenergy crop such as switchgrass. A developed region with favorable climate such as Western Europe may have much higher potential yields, and thus higher potential profit rates for growing a bioenergy crop than Africa. However, that does not mean that Western Europe would grow more bioenergy crops than Africa. Western Europe will also have higher yields and profits for high-valued food crops, as well as high land prices that would limit expansion of agricultural land. Africa may find in this scenario that it is profitable to expand agricultural land for bioenergy crops for export, even though its bioenergy yields are lower on an absolute basis. Similar examples can be made with food crops and forestry.\n+\n+Although GCAM is not structured as an optimization model, the allocation of production of crops and products across regions and subregions of the globe based on comparative advantage can be considered optimal in terms of maximizing global profits (which is not the same as minimizing land requirements). While each land subregion makes its own independent allocation, the subregions communicate these decisions with each other through economic markets. The global markets for agricultural and forest products react to these allocations by comparing global supplies to demands and adjusting prices to equilibrate supplies and demands. The resulting prices are sent back to each land subregion as signals as to how its land allocation should be changed.  The process of allocation and price adjustment continues until the markets are in equilibrium.  This market equilibrium is an economically efficient allocation of land resources among regions (Samuelson and Nordhaus, 1985).\n+\n+## Terrestrial Carbon Approach\n+\n+Land-use change CO<sub>2</sub> emissions are calculated in GCAM using a simple accounting approach, similar to that of Houghton (1999). That is, GCAM determines the change in above and below ground carbon stock for a given land use change and allocates that change in carbon stock over time.  \n+\n+### Vegetation Carbon\n+\n+For vegetation carbon, we distinguish between two different activities – land expansion and land contraction. In the event that land contracts, i.e., there is less land in the current period than the previous period, we assume that all emissions are released instantaneously.  In this event, the land-use change emissions for the current period from above ground carbon changes are equal to the change in above ground carbon stock. Emissions from above ground carbon changes for all other periods are equal to zero. In the event land expands, we spread the change in carbon stock across time depending on the length of time it takes for the vegetation to mature.  For crops, the mature age is typically set a 1 year, meaning that all carbon uptake occurs instantaneously. For forests, however, we assume it takes anywhere from 30 years to 100 years to uptake all of the carbon. We use an example of the Bertalanffy-Richards function.\n+\n+### Soil Carbon\n+\n+For soil carbon, we assume emissions and uptake is exponential, where the half life depends on the region. Colder regions have longer half-lives.","path":"AgLU.md","position":144,"original_position":142,"commit_id":"9aa462e5f730bae23c13140ac83c3a2c0e45616a","original_commit_id":"2210182d92a120a72819650303a9ed36f56183c2","user":{"login":"bpbond","id":1956468,"avatar_url":"https://avatars.githubusercontent.com/u/1956468?v=3","gravatar_id":"","url":"https://api.github.com/users/bpbond","html_url":"https://github.com/bpbond","followers_url":"https://api.github.com/users/bpbond/followers","following_url":"https://api.github.com/users/bpbond/following{/other_user}","gists_url":"https://api.github.com/users/bpbond/gists{/gist_id}","starred_url":"https://api.github.com/users/bpbond/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bpbond/subscriptions","organizations_url":"https://api.github.com/users/bpbond/orgs","repos_url":"https://api.github.com/users/bpbond/repos","events_url":"https://api.github.com/users/bpbond/events{/privacy}","received_events_url":"https://api.github.com/users/bpbond/received_events","type":"User","site_admin":false},"body":"For clarity, perhaps \"we assume both emissions and uptake are exponential, where the exponential half-life depends\"","created_at":"2016-06-17T16:43:05Z","updated_at":"2016-06-17T16:43:05Z","html_url":"https://github.com/JGCRI/gcam-doc/pull/2#discussion_r67539957","pull_request_url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/comments/67539957"},"html":{"href":"https://github.com/JGCRI/gcam-doc/pull/2#discussion_r67539957"},"pull_request":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2","id":74270355,"html_url":"https://github.com/JGCRI/gcam-doc/pull/2","diff_url":"https://github.com/JGCRI/gcam-doc/pull/2.diff","patch_url":"https://github.com/JGCRI/gcam-doc/pull/2.patch","issue_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues/2","number":2,"state":"open","locked":false,"title":"Aglu dev","user":{"login":"kvcalvin","id":11820268,"avatar_url":"https://avatars.githubusercontent.com/u/11820268?v=3","gravatar_id":"","url":"https://api.github.com/users/kvcalvin","html_url":"https://github.com/kvcalvin","followers_url":"https://api.github.com/users/kvcalvin/followers","following_url":"https://api.github.com/users/kvcalvin/following{/other_user}","gists_url":"https://api.github.com/users/kvcalvin/gists{/gist_id}","starred_url":"https://api.github.com/users/kvcalvin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kvcalvin/subscriptions","organizations_url":"https://api.github.com/users/kvcalvin/orgs","repos_url":"https://api.github.com/users/kvcalvin/repos","events_url":"https://api.github.com/users/kvcalvin/events{/privacy}","received_events_url":"https://api.github.com/users/kvcalvin/received_events","type":"User","site_admin":false},"body":"This branch adds documentation for the Agriculture and Land Use component of GCAM.","created_at":"2016-06-17T16:33:02Z","updated_at":"2016-06-17T16:43:05Z","closed_at":null,"merged_at":null,"merge_commit_sha":"cbf0448f2b95914c922bb07991e0c149fa091171","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2/commits","review_comments_url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2/comments","review_comment_url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/comments{/number}","comments_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues/2/comments","statuses_url":"https://api.github.com/repos/JGCRI/gcam-doc/statuses/9aa462e5f730bae23c13140ac83c3a2c0e45616a","head":{"label":"JGCRI:aglu-dev","ref":"aglu-dev","sha":"9aa462e5f730bae23c13140ac83c3a2c0e45616a","user":{"login":"JGCRI","id":8431983,"avatar_url":"https://avatars.githubusercontent.com/u/8431983?v=3","gravatar_id":"","url":"https://api.github.com/users/JGCRI","html_url":"https://github.com/JGCRI","followers_url":"https://api.github.com/users/JGCRI/followers","following_url":"https://api.github.com/users/JGCRI/following{/other_user}","gists_url":"https://api.github.com/users/JGCRI/gists{/gist_id}","starred_url":"https://api.github.com/users/JGCRI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JGCRI/subscriptions","organizations_url":"https://api.github.com/users/JGCRI/orgs","repos_url":"https://api.github.com/users/JGCRI/repos","events_url":"https://api.github.com/users/JGCRI/events{/privacy}","received_events_url":"https://api.github.com/users/JGCRI/received_events","type":"Organization","site_admin":false},"repo":{"id":59048576,"name":"gcam-doc","full_name":"JGCRI/gcam-doc","owner":{"login":"JGCRI","id":8431983,"avatar_url":"https://avatars.githubusercontent.com/u/8431983?v=3","gravatar_id":"","url":"https://api.github.com/users/JGCRI","html_url":"https://github.com/JGCRI","followers_url":"https://api.github.com/users/JGCRI/followers","following_url":"https://api.github.com/users/JGCRI/following{/other_user}","gists_url":"https://api.github.com/users/JGCRI/gists{/gist_id}","starred_url":"https://api.github.com/users/JGCRI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JGCRI/subscriptions","organizations_url":"https://api.github.com/users/JGCRI/orgs","repos_url":"https://api.github.com/users/JGCRI/repos","events_url":"https://api.github.com/users/JGCRI/events{/privacy}","received_events_url":"https://api.github.com/users/JGCRI/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/JGCRI/gcam-doc","description":"Documentation for the GCAM Integrated Assessment model","fork":false,"url":"https://api.github.com/repos/JGCRI/gcam-doc","forks_url":"https://api.github.com/repos/JGCRI/gcam-doc/forks","keys_url":"https://api.github.com/repos/JGCRI/gcam-doc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JGCRI/gcam-doc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JGCRI/gcam-doc/teams","hooks_url":"https://api.github.com/repos/JGCRI/gcam-doc/hooks","issue_events_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues/events{/number}","events_url":"https://api.github.com/repos/JGCRI/gcam-doc/events","assignees_url":"https://api.github.com/repos/JGCRI/gcam-doc/assignees{/user}","branches_url":"https://api.github.com/repos/JGCRI/gcam-doc/branches{/branch}","tags_url":"https://api.github.com/repos/JGCRI/gcam-doc/tags","blobs_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/refs{/sha}","trees_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JGCRI/gcam-doc/statuses/{sha}","languages_url":"https://api.github.com/repos/JGCRI/gcam-doc/languages","stargazers_url":"https://api.github.com/repos/JGCRI/gcam-doc/stargazers","contributors_url":"https://api.github.com/repos/JGCRI/gcam-doc/contributors","subscribers_url":"https://api.github.com/repos/JGCRI/gcam-doc/subscribers","subscription_url":"https://api.github.com/repos/JGCRI/gcam-doc/subscription","commits_url":"https://api.github.com/repos/JGCRI/gcam-doc/commits{/sha}","git_commits_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/commits{/sha}","comments_url":"https://api.github.com/repos/JGCRI/gcam-doc/comments{/number}","issue_comment_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues/comments{/number}","contents_url":"https://api.github.com/repos/JGCRI/gcam-doc/contents/{+path}","compare_url":"https://api.github.com/repos/JGCRI/gcam-doc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JGCRI/gcam-doc/merges","archive_url":"https://api.github.com/repos/JGCRI/gcam-doc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JGCRI/gcam-doc/downloads","issues_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues{/number}","pulls_url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls{/number}","milestones_url":"https://api.github.com/repos/JGCRI/gcam-doc/milestones{/number}","notifications_url":"https://api.github.com/repos/JGCRI/gcam-doc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JGCRI/gcam-doc/labels{/name}","releases_url":"https://api.github.com/repos/JGCRI/gcam-doc/releases{/id}","deployments_url":"https://api.github.com/repos/JGCRI/gcam-doc/deployments","created_at":"2016-05-17T18:31:44Z","updated_at":"2016-06-16T18:23:21Z","pushed_at":"2016-06-17T16:33:02Z","git_url":"git://github.com/JGCRI/gcam-doc.git","ssh_url":"git@github.com:JGCRI/gcam-doc.git","clone_url":"https://github.com/JGCRI/gcam-doc.git","svn_url":"https://github.com/JGCRI/gcam-doc","homepage":null,"size":4925,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":1,"default_branch":"gh-pages"}},"base":{"label":"JGCRI:gh-pages","ref":"gh-pages","sha":"fc7f0bcb9c0f86b4c53d87109bbc5e578a31fc3f","user":{"login":"JGCRI","id":8431983,"avatar_url":"https://avatars.githubusercontent.com/u/8431983?v=3","gravatar_id":"","url":"https://api.github.com/users/JGCRI","html_url":"https://github.com/JGCRI","followers_url":"https://api.github.com/users/JGCRI/followers","following_url":"https://api.github.com/users/JGCRI/following{/other_user}","gists_url":"https://api.github.com/users/JGCRI/gists{/gist_id}","starred_url":"https://api.github.com/users/JGCRI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JGCRI/subscriptions","organizations_url":"https://api.github.com/users/JGCRI/orgs","repos_url":"https://api.github.com/users/JGCRI/repos","events_url":"https://api.github.com/users/JGCRI/events{/privacy}","received_events_url":"https://api.github.com/users/JGCRI/received_events","type":"Organization","site_admin":false},"repo":{"id":59048576,"name":"gcam-doc","full_name":"JGCRI/gcam-doc","owner":{"login":"JGCRI","id":8431983,"avatar_url":"https://avatars.githubusercontent.com/u/8431983?v=3","gravatar_id":"","url":"https://api.github.com/users/JGCRI","html_url":"https://github.com/JGCRI","followers_url":"https://api.github.com/users/JGCRI/followers","following_url":"https://api.github.com/users/JGCRI/following{/other_user}","gists_url":"https://api.github.com/users/JGCRI/gists{/gist_id}","starred_url":"https://api.github.com/users/JGCRI/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/JGCRI/subscriptions","organizations_url":"https://api.github.com/users/JGCRI/orgs","repos_url":"https://api.github.com/users/JGCRI/repos","events_url":"https://api.github.com/users/JGCRI/events{/privacy}","received_events_url":"https://api.github.com/users/JGCRI/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/JGCRI/gcam-doc","description":"Documentation for the GCAM Integrated Assessment model","fork":false,"url":"https://api.github.com/repos/JGCRI/gcam-doc","forks_url":"https://api.github.com/repos/JGCRI/gcam-doc/forks","keys_url":"https://api.github.com/repos/JGCRI/gcam-doc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/JGCRI/gcam-doc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/JGCRI/gcam-doc/teams","hooks_url":"https://api.github.com/repos/JGCRI/gcam-doc/hooks","issue_events_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues/events{/number}","events_url":"https://api.github.com/repos/JGCRI/gcam-doc/events","assignees_url":"https://api.github.com/repos/JGCRI/gcam-doc/assignees{/user}","branches_url":"https://api.github.com/repos/JGCRI/gcam-doc/branches{/branch}","tags_url":"https://api.github.com/repos/JGCRI/gcam-doc/tags","blobs_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/refs{/sha}","trees_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/JGCRI/gcam-doc/statuses/{sha}","languages_url":"https://api.github.com/repos/JGCRI/gcam-doc/languages","stargazers_url":"https://api.github.com/repos/JGCRI/gcam-doc/stargazers","contributors_url":"https://api.github.com/repos/JGCRI/gcam-doc/contributors","subscribers_url":"https://api.github.com/repos/JGCRI/gcam-doc/subscribers","subscription_url":"https://api.github.com/repos/JGCRI/gcam-doc/subscription","commits_url":"https://api.github.com/repos/JGCRI/gcam-doc/commits{/sha}","git_commits_url":"https://api.github.com/repos/JGCRI/gcam-doc/git/commits{/sha}","comments_url":"https://api.github.com/repos/JGCRI/gcam-doc/comments{/number}","issue_comment_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues/comments{/number}","contents_url":"https://api.github.com/repos/JGCRI/gcam-doc/contents/{+path}","compare_url":"https://api.github.com/repos/JGCRI/gcam-doc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/JGCRI/gcam-doc/merges","archive_url":"https://api.github.com/repos/JGCRI/gcam-doc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/JGCRI/gcam-doc/downloads","issues_url":"https://api.github.com/repos/JGCRI/gcam-doc/issues{/number}","pulls_url":"https://api.github.com/repos/JGCRI/gcam-doc/pulls{/number}","milestones_url":"https://api.github.com/repos/JGCRI/gcam-doc/milestones{/number}","notifications_url":"https://api.github.com/repos/JGCRI/gcam-doc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/JGCRI/gcam-doc/labels{/name}","releases_url":"https://api.github.com/repos/JGCRI/gcam-doc/releases{/id}","deployments_url":"https://api.github.com/repos/JGCRI/gcam-doc/deployments","created_at":"2016-05-17T18:31:44Z","updated_at":"2016-06-16T18:23:21Z","pushed_at":"2016-06-17T16:33:02Z","git_url":"git://github.com/JGCRI/gcam-doc.git","ssh_url":"git@github.com:JGCRI/gcam-doc.git","clone_url":"https://github.com/JGCRI/gcam-doc.git","svn_url":"https://github.com/JGCRI/gcam-doc","homepage":null,"size":4925,"stargazers_count":1,"watchers_count":1,"language":"CSS","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":2,"forks":0,"open_issues":2,"watchers":1,"default_branch":"gh-pages"}},"_links":{"self":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2"},"html":{"href":"https://github.com/JGCRI/gcam-doc/pull/2"},"issue":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/issues/2"},"comments":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/JGCRI/gcam-doc/statuses/9aa462e5f730bae23c13140ac83c3a2c0e45616a"}}}}
{"actor":{"display_login":"bpbond"}}