GitHub PullRequestReviewCommentEvent at 2014-09-25 16:46:15
Repository: iris
Actor: pp-mo
Payload: {"action":"created","comment":{"url":"https://api.github.com/repos/SciTools/iris/pulls/comments/18043793","id":18043793,"diff_hunk":"@@ -463,42 +481,248 @@ def product_definition_template_0(section, metadata, frt_point):\n     * metadata:\n         :class:`collections.OrderedDict` of metadata.\n \n-    * frt_point:\n-        :class:`datetime.datetime` forecast reference time\n-        calculated from several coded keys in message section 1.\n+    \"\"\"\n+    if section['NV'] > 0:\n+        # Generate hybrid vertical coordinates.\n+        hybrid_factories(section, metadata)\n+    else:\n+        # Generate vertical coordinate.\n+        typeOfFirstFixedSurface = section['typeOfFirstFixedSurface']\n+        key = 'scaledValueOfFirstFixedSurface'\n+        scaledValueOfFirstFixedSurface = section[key]\n+        fixed_surface = _FIXED_SURFACE.get(typeOfFirstFixedSurface)\n+\n+        if fixed_surface is None:\n+            if np.int8(typeOfFirstFixedSurface) != _CODE_TABLE_MDI:\n+                if np.int32(scaledValueOfFirstFixedSurface) == \\\n+                        _CODE_TABLE_MDI:\n+                    if options.warn_on_unsupported:\n+                        msg = 'Unable to translate type of first fixed ' \\\n+                            'surface with no scaled value.'\n+                        warnings.warn(msg)\n+                else:\n+                    if options.warn_on_unsupported:\n+                        msg = 'Unable to translate type of first fixed ' \\\n+                            'surface and scaled value.'\n+                        warnings.warn(msg)\n+        else:\n+            key = 'scaleFactorOfFirstFixedSurface'\n+            scaleFactorOfFirstFixedSurface = section[key]\n+            typeOfSecondFixedSurface = section['typeOfSecondFixedSurface']\n+            # Regulation 92.1.12.\n+            unscale = lambda v, f: v / 10.0**f\n+\n+            if np.int8(typeOfSecondFixedSurface) != _CODE_TABLE_MDI:\n+                if typeOfFirstFixedSurface != typeOfSecondFixedSurface:\n+                    msg = 'Product definition section 4 contains invalid ' \\\n+                        'type of second fixed ' \\\n+                        'surface [{}]'.format(typeOfSecondFixedSurface)\n+                    raise TranslationError(msg)\n+\n+                key = 'scaledValueOfSecondFixedSurface'\n+                scaledValueOfSecondFixedSurface = section[key]\n+\n+                if np.int32(scaledValueOfSecondFixedSurface) == \\\n+                        _CODE_TABLE_MDI:\n+                    msg = 'Product definition section 4 contains invalid ' \\\n+                        'scaled value of second fixed ' \\\n+                        'surface [{}]'.format(scaledValueOfSecondFixedSurface)\n+                    raise TranslationError(msg)\n+                else:\n+                    key = 'scaleFactorOfSecondFixedSurface'\n+                    scaleFactorOfSecondFixedSurface = section[key]\n+                    first = unscale(scaledValueOfFirstFixedSurface,\n+                                    scaleFactorOfFirstFixedSurface)\n+                    second = unscale(scaledValueOfSecondFixedSurface,\n+                                     scaleFactorOfSecondFixedSurface)\n+                    point = 0.5 * (first + second)\n+                    bounds = [first, second]\n+                    coord = DimCoord(point,\n+                                     standard_name=fixed_surface.standard_name,\n+                                     long_name=fixed_surface.long_name,\n+                                     units=fixed_surface.units,\n+                                     bounds=bounds)\n+                    # Add the vertical coordinate to metadata aux coords.\n+                    metadata['aux_coords_and_dims'].append((coord, None))\n+            else:\n+                point = unscale(scaledValueOfFirstFixedSurface,\n+                                scaleFactorOfFirstFixedSurface)\n+                coord = DimCoord(point,\n+                                 standard_name=fixed_surface.standard_name,\n+                                 long_name=fixed_surface.long_name,\n+                                 units=fixed_surface.units)\n+                # Add the vertical coordinate to metadata aux coords.\n+                metadata['aux_coords_and_dims'].append((coord, None))\n+\n+\n+def forecast_period_coord(indicatorOfUnitOfTimeRange, forecastTime):\n+    \"\"\"\n+    Create the forecast period coordinate.\n+\n+    Args:\n+\n+    * indicatorOfUnitOfTimeRange:\n+        Message section 4, octets 18.\n+\n+    * forecastTime:\n+        Message section 4, octets 19-22.\n+\n+    Returns:\n+        The scalar forecast period :class:`iris.coords.DimCoord`.\n+\n+    \"\"\"\n+    # Determine the forecast period and associated units.\n+    unit = time_range_unit(indicatorOfUnitOfTimeRange)\n+    point = unit.convert(forecastTime, 'hours')\n+    # Create the forecast period scalar coordinate.\n+    coord = DimCoord(point, standard_name='forecast_period', units='hours')\n+    return coord\n+\n+\n+def validity_time_coord(frt_coord, fp_coord):\n+    \"\"\"\n+    Create the validity or phenomenon time coordinate.\n+\n+    Args:\n+\n+    * frt_coord:\n+        The scalar forecast reference time :class:`iris.coords.DimCoord`.\n+\n+    * fp_coord:\n+        The scalar forecast period :class:`iris.coords.DimCoord`.\n+\n+    Returns:\n+        The scalar time :class:`iris.coords.DimCoord`.\n+\n+    \"\"\"\n+    if frt_coord.shape != (1,):\n+        msg = 'Expected scalar forecast reference time coordinate when ' \\\n+            'calculating validity time, got shape {!r}'.format(frt_coord.shape)\n+        raise ValueError(msg)\n+\n+    if fp_coord.shape != (1,):\n+        msg = 'Expected scalar forecast period coordinate when ' \\\n+            'calculating validity time, got shape {!r}'.format(fp_coord.shape)\n+        raise ValueError(msg)\n+\n+    # Calculate the validity (phenomenon) time and units.\n+    seconds = fp_coord.units.convert(fp_coord.points[0], 'seconds')\n+    delta = timedelta(seconds=seconds)\n+    frt_point = frt_coord.units.num2date(frt_coord.points[0])\n+    unit = Unit('hours since epoch', calendar=CALENDAR_GREGORIAN)\n+    point = date2num(frt_point + delta, unit.origin, unit.calendar)\n+    # Create the time scalar coordinate.\n+    coord = DimCoord(point, standard_name='time', units=unit)\n+    return coord\n+\n \n+def data_cutoff(hoursAfterDataCutoff, minutesAfterDataCutoff):\n     \"\"\"\n-    if np.int16(section['hoursAfterDataCutoff']) != _CODE_TABLE_MDI or \\\n-            np.int8(section['minutesAfterDataCutoff']) != _CODE_TABLE_MDI:\n+    Handle the after reference time data cutoff.\n+\n+    Args:\n+\n+    * hoursAfterDataCutoff:\n+        Message section 4, octets 15-16.\n+\n+    * minutesAfterDataCutoff:\n+        Message section 4, octet 17.\n+\n+    \"\"\"\n+    if np.int16(hoursAfterDataCutoff) != _CODE_TABLE_MDI or \\\n+            np.int8(minutesAfterDataCutoff) != _CODE_TABLE_MDI:","path":"lib/iris/fileformats/grib/_load_convert.py","position":353,"original_position":353,"commit_id":"bd70ee2fd07d702b653168e7d10a9c2a64583d72","original_commit_id":"bd70ee2fd07d702b653168e7d10a9c2a64583d72","user":{"login":"pp-mo","id":2089069,"avatar_url":"https://avatars.githubusercontent.com/u/2089069?v=2","gravatar_id":"","url":"https://api.github.com/users/pp-mo","html_url":"https://github.com/pp-mo","followers_url":"https://api.github.com/users/pp-mo/followers","following_url":"https://api.github.com/users/pp-mo/following{/other_user}","gists_url":"https://api.github.com/users/pp-mo/gists{/gist_id}","starred_url":"https://api.github.com/users/pp-mo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pp-mo/subscriptions","organizations_url":"https://api.github.com/users/pp-mo/orgs","repos_url":"https://api.github.com/users/pp-mo/repos","events_url":"https://api.github.com/users/pp-mo/events{/privacy}","received_events_url":"https://api.github.com/users/pp-mo/received_events","type":"User","site_admin":false},"body":"From the actual data files I've seen, it looks like these are typically set at 0 rather than MDI\r\nFor example...\r\n```\r\nitpp@eld238: /data/local/dataZoo/GRIB > grib_dump -O -wcount=1 WAFC/CAT_T\\+06_06.grib2  | grep -i cutoff \r\n15-16     hoursAfterDataCutoff = 0\r\n17        minutesAfterDataCutoff = 0\r\nitpp@eld238: /data/local/dataZoo/GRIB > grib_dump -O -wcount=1 global_t/global.grib2  | grep -i cutoff  \r\n15-16     hoursAfterDataCutoff = 0\r\n17        minutesAfterDataCutoff = 0\r\nitpp@eld238: /data/local/dataZoo/GRIB > grib_dump -O -wcount=1 uk_t/uk_t.grib2  | grep -i cutoff  \r\n15-16     hoursAfterDataCutoff = 0\r\n17        minutesAfterDataCutoff = 0\r\nitpp@eld238: /data/local/dataZoo/GRIB > grib_dump -O -wcount=1 ecmwf_standard/t0_subset.grib2  | grep -i cutoff  \r\n15-16     hoursAfterDataCutoff = MISSING\r\n17        minutesAfterDataCutoff = MISSING\r\nitpp@eld238: /data/local/dataZoo/GRIB > \r\n```\r\n(note that the ECMWF data *does* use MDI -- this seems typical for their files)\r\n\r\nHowever ...\r\n  (a) I'm not clear what these terms really mean \r\n  (b) it may be common usage \"against the formal spec\", like the hindcast problem.\r\nEither way, I guess we should be acknowledging this usage, but maybe it has to be via a FUTURE-type option","created_at":"2014-09-25T16:46:15Z","updated_at":"2014-09-25T16:46:15Z","html_url":"https://github.com/SciTools/iris/pull/1337#discussion_r18043793","pull_request_url":"https://api.github.com/repos/SciTools/iris/pulls/1337","_links":{"self":{"href":"https://api.github.com/repos/SciTools/iris/pulls/comments/18043793"},"html":{"href":"https://github.com/SciTools/iris/pull/1337#discussion_r18043793"},"pull_request":{"href":"https://api.github.com/repos/SciTools/iris/pulls/1337"}}},"pull_request":{"url":"https://api.github.com/repos/SciTools/iris/pulls/1337","id":21724065,"html_url":"https://github.com/SciTools/iris/pull/1337","diff_url":"https://github.com/SciTools/iris/pull/1337.diff","patch_url":"https://github.com/SciTools/iris/pull/1337.patch","issue_url":"https://api.github.com/repos/SciTools/iris/issues/1337","number":1337,"state":"open","locked":false,"title":"Product definition template 1.","user":{"login":"bjlittle","id":2051656,"avatar_url":"https://avatars.githubusercontent.com/u/2051656?v=2","gravatar_id":"","url":"https://api.github.com/users/bjlittle","html_url":"https://github.com/bjlittle","followers_url":"https://api.github.com/users/bjlittle/followers","following_url":"https://api.github.com/users/bjlittle/following{/other_user}","gists_url":"https://api.github.com/users/bjlittle/gists{/gist_id}","starred_url":"https://api.github.com/users/bjlittle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjlittle/subscriptions","organizations_url":"https://api.github.com/users/bjlittle/orgs","repos_url":"https://api.github.com/users/bjlittle/repos","events_url":"https://api.github.com/users/bjlittle/events{/privacy}","received_events_url":"https://api.github.com/users/bjlittle/received_events","type":"User","site_admin":false},"body":"This PR extends the new GRIB2 capability to include product definition template 1.\r\n\r\nI'm conscious that I've created utility functions:\r\n * `reference_time_coord`\r\n * `forecast_period_coord`\r\n * `validity_time_coord`\r\n\r\nwhich could/may be more generic to accommodate future functionality. But since I don't have a use-case or pattern for *how* to make them generic, I'm leaving them as is and assuming that follow-on PRs will tend towards the *agreed* solution (@pp-mo)","created_at":"2014-09-24T15:53:50Z","updated_at":"2014-09-25T16:46:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b4fefe9a6123975dc1bd72ce6e6637e0cf41c54b","assignee":{"login":"pp-mo","id":2089069,"avatar_url":"https://avatars.githubusercontent.com/u/2089069?v=2","gravatar_id":"","url":"https://api.github.com/users/pp-mo","html_url":"https://github.com/pp-mo","followers_url":"https://api.github.com/users/pp-mo/followers","following_url":"https://api.github.com/users/pp-mo/following{/other_user}","gists_url":"https://api.github.com/users/pp-mo/gists{/gist_id}","starred_url":"https://api.github.com/users/pp-mo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pp-mo/subscriptions","organizations_url":"https://api.github.com/users/pp-mo/orgs","repos_url":"https://api.github.com/users/pp-mo/repos","events_url":"https://api.github.com/users/pp-mo/events{/privacy}","received_events_url":"https://api.github.com/users/pp-mo/received_events","type":"User","site_admin":false},"milestone":null,"commits_url":"https://api.github.com/repos/SciTools/iris/pulls/1337/commits","review_comments_url":"https://api.github.com/repos/SciTools/iris/pulls/1337/comments","review_comment_url":"https://api.github.com/repos/SciTools/iris/pulls/comments/{number}","comments_url":"https://api.github.com/repos/SciTools/iris/issues/1337/comments","statuses_url":"https://api.github.com/repos/SciTools/iris/statuses/bd70ee2fd07d702b653168e7d10a9c2a64583d72","head":{"label":"bjlittle:grib_pdt_1","ref":"grib_pdt_1","sha":"bd70ee2fd07d702b653168e7d10a9c2a64583d72","user":{"login":"bjlittle","id":2051656,"avatar_url":"https://avatars.githubusercontent.com/u/2051656?v=2","gravatar_id":"","url":"https://api.github.com/users/bjlittle","html_url":"https://github.com/bjlittle","followers_url":"https://api.github.com/users/bjlittle/followers","following_url":"https://api.github.com/users/bjlittle/following{/other_user}","gists_url":"https://api.github.com/users/bjlittle/gists{/gist_id}","starred_url":"https://api.github.com/users/bjlittle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjlittle/subscriptions","organizations_url":"https://api.github.com/users/bjlittle/orgs","repos_url":"https://api.github.com/users/bjlittle/repos","events_url":"https://api.github.com/users/bjlittle/events{/privacy}","received_events_url":"https://api.github.com/users/bjlittle/received_events","type":"User","site_admin":false},"repo":{"id":5312966,"name":"iris","full_name":"bjlittle/iris","owner":{"login":"bjlittle","id":2051656,"avatar_url":"https://avatars.githubusercontent.com/u/2051656?v=2","gravatar_id":"","url":"https://api.github.com/users/bjlittle","html_url":"https://github.com/bjlittle","followers_url":"https://api.github.com/users/bjlittle/followers","following_url":"https://api.github.com/users/bjlittle/following{/other_user}","gists_url":"https://api.github.com/users/bjlittle/gists{/gist_id}","starred_url":"https://api.github.com/users/bjlittle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bjlittle/subscriptions","organizations_url":"https://api.github.com/users/bjlittle/orgs","repos_url":"https://api.github.com/users/bjlittle/repos","events_url":"https://api.github.com/users/bjlittle/events{/privacy}","received_events_url":"https://api.github.com/users/bjlittle/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/bjlittle/iris","description":"","fork":true,"url":"https://api.github.com/repos/bjlittle/iris","forks_url":"https://api.github.com/repos/bjlittle/iris/forks","keys_url":"https://api.github.com/repos/bjlittle/iris/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bjlittle/iris/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bjlittle/iris/teams","hooks_url":"https://api.github.com/repos/bjlittle/iris/hooks","issue_events_url":"https://api.github.com/repos/bjlittle/iris/issues/events{/number}","events_url":"https://api.github.com/repos/bjlittle/iris/events","assignees_url":"https://api.github.com/repos/bjlittle/iris/assignees{/user}","branches_url":"https://api.github.com/repos/bjlittle/iris/branches{/branch}","tags_url":"https://api.github.com/repos/bjlittle/iris/tags","blobs_url":"https://api.github.com/repos/bjlittle/iris/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bjlittle/iris/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bjlittle/iris/git/refs{/sha}","trees_url":"https://api.github.com/repos/bjlittle/iris/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bjlittle/iris/statuses/{sha}","languages_url":"https://api.github.com/repos/bjlittle/iris/languages","stargazers_url":"https://api.github.com/repos/bjlittle/iris/stargazers","contributors_url":"https://api.github.com/repos/bjlittle/iris/contributors","subscribers_url":"https://api.github.com/repos/bjlittle/iris/subscribers","subscription_url":"https://api.github.com/repos/bjlittle/iris/subscription","commits_url":"https://api.github.com/repos/bjlittle/iris/commits{/sha}","git_commits_url":"https://api.github.com/repos/bjlittle/iris/git/commits{/sha}","comments_url":"https://api.github.com/repos/bjlittle/iris/comments{/number}","issue_comment_url":"https://api.github.com/repos/bjlittle/iris/issues/comments/{number}","contents_url":"https://api.github.com/repos/bjlittle/iris/contents/{+path}","compare_url":"https://api.github.com/repos/bjlittle/iris/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bjlittle/iris/merges","archive_url":"https://api.github.com/repos/bjlittle/iris/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bjlittle/iris/downloads","issues_url":"https://api.github.com/repos/bjlittle/iris/issues{/number}","pulls_url":"https://api.github.com/repos/bjlittle/iris/pulls{/number}","milestones_url":"https://api.github.com/repos/bjlittle/iris/milestones{/number}","notifications_url":"https://api.github.com/repos/bjlittle/iris/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bjlittle/iris/labels{/name}","releases_url":"https://api.github.com/repos/bjlittle/iris/releases{/id}","created_at":"2012-08-06T10:45:19Z","updated_at":"2014-09-23T09:42:09Z","pushed_at":"2014-09-25T14:45:36Z","git_url":"git://github.com/bjlittle/iris.git","ssh_url":"git@github.com:bjlittle/iris.git","clone_url":"https://github.com/bjlittle/iris.git","svn_url":"https://github.com/bjlittle/iris","homepage":"","size":94174,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":2,"default_branch":"master"}},"base":{"label":"SciTools:master","ref":"master","sha":"85159a2d2a8527b2f23277834f404966432ac866","user":{"login":"SciTools","id":1391487,"avatar_url":"https://avatars.githubusercontent.com/u/1391487?v=2","gravatar_id":"","url":"https://api.github.com/users/SciTools","html_url":"https://github.com/SciTools","followers_url":"https://api.github.com/users/SciTools/followers","following_url":"https://api.github.com/users/SciTools/following{/other_user}","gists_url":"https://api.github.com/users/SciTools/gists{/gist_id}","starred_url":"https://api.github.com/users/SciTools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SciTools/subscriptions","organizations_url":"https://api.github.com/users/SciTools/orgs","repos_url":"https://api.github.com/users/SciTools/repos","events_url":"https://api.github.com/users/SciTools/events{/privacy}","received_events_url":"https://api.github.com/users/SciTools/received_events","type":"Organization","site_admin":false},"repo":{"id":5312648,"name":"iris","full_name":"SciTools/iris","owner":{"login":"SciTools","id":1391487,"avatar_url":"https://avatars.githubusercontent.com/u/1391487?v=2","gravatar_id":"","url":"https://api.github.com/users/SciTools","html_url":"https://github.com/SciTools","followers_url":"https://api.github.com/users/SciTools/followers","following_url":"https://api.github.com/users/SciTools/following{/other_user}","gists_url":"https://api.github.com/users/SciTools/gists{/gist_id}","starred_url":"https://api.github.com/users/SciTools/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SciTools/subscriptions","organizations_url":"https://api.github.com/users/SciTools/orgs","repos_url":"https://api.github.com/users/SciTools/repos","events_url":"https://api.github.com/users/SciTools/events{/privacy}","received_events_url":"https://api.github.com/users/SciTools/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/SciTools/iris","description":"A powerful, easy to use, and community-driven Python library for analysing and visualising meteorological and oceanographic data sets.","fork":false,"url":"https://api.github.com/repos/SciTools/iris","forks_url":"https://api.github.com/repos/SciTools/iris/forks","keys_url":"https://api.github.com/repos/SciTools/iris/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SciTools/iris/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SciTools/iris/teams","hooks_url":"https://api.github.com/repos/SciTools/iris/hooks","issue_events_url":"https://api.github.com/repos/SciTools/iris/issues/events{/number}","events_url":"https://api.github.com/repos/SciTools/iris/events","assignees_url":"https://api.github.com/repos/SciTools/iris/assignees{/user}","branches_url":"https://api.github.com/repos/SciTools/iris/branches{/branch}","tags_url":"https://api.github.com/repos/SciTools/iris/tags","blobs_url":"https://api.github.com/repos/SciTools/iris/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SciTools/iris/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SciTools/iris/git/refs{/sha}","trees_url":"https://api.github.com/repos/SciTools/iris/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SciTools/iris/statuses/{sha}","languages_url":"https://api.github.com/repos/SciTools/iris/languages","stargazers_url":"https://api.github.com/repos/SciTools/iris/stargazers","contributors_url":"https://api.github.com/repos/SciTools/iris/contributors","subscribers_url":"https://api.github.com/repos/SciTools/iris/subscribers","subscription_url":"https://api.github.com/repos/SciTools/iris/subscription","commits_url":"https://api.github.com/repos/SciTools/iris/commits{/sha}","git_commits_url":"https://api.github.com/repos/SciTools/iris/git/commits{/sha}","comments_url":"https://api.github.com/repos/SciTools/iris/comments{/number}","issue_comment_url":"https://api.github.com/repos/SciTools/iris/issues/comments/{number}","contents_url":"https://api.github.com/repos/SciTools/iris/contents/{+path}","compare_url":"https://api.github.com/repos/SciTools/iris/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SciTools/iris/merges","archive_url":"https://api.github.com/repos/SciTools/iris/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SciTools/iris/downloads","issues_url":"https://api.github.com/repos/SciTools/iris/issues{/number}","pulls_url":"https://api.github.com/repos/SciTools/iris/pulls{/number}","milestones_url":"https://api.github.com/repos/SciTools/iris/milestones{/number}","notifications_url":"https://api.github.com/repos/SciTools/iris/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SciTools/iris/labels{/name}","releases_url":"https://api.github.com/repos/SciTools/iris/releases{/id}","created_at":"2012-08-06T10:09:14Z","updated_at":"2014-09-03T15:45:46Z","pushed_at":"2014-09-25T14:51:28Z","git_url":"git://github.com/SciTools/iris.git","ssh_url":"git@github.com:SciTools/iris.git","clone_url":"https://github.com/SciTools/iris.git","svn_url":"https://github.com/SciTools/iris","homepage":"http://scitools.org.uk/iris/","size":145218,"stargazers_count":71,"watchers_count":71,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":61,"mirror_url":null,"open_issues_count":145,"forks":61,"open_issues":145,"watchers":71,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/SciTools/iris/pulls/1337"},"html":{"href":"https://github.com/SciTools/iris/pull/1337"},"issue":{"href":"https://api.github.com/repos/SciTools/iris/issues/1337"},"comments":{"href":"https://api.github.com/repos/SciTools/iris/issues/1337/comments"},"review_comments":{"href":"https://api.github.com/repos/SciTools/iris/pulls/1337/comments"},"review_comment":{"href":"https://api.github.com/repos/SciTools/iris/pulls/comments/{number}"},"commits":{"href":"https://api.github.com/repos/SciTools/iris/pulls/1337/commits"},"statuses":{"href":"https://api.github.com/repos/SciTools/iris/statuses/bd70ee2fd07d702b653168e7d10a9c2a64583d72"}}}}