{"action":"closed","number":394,"pull_request":{"url":"https://api.github.com/repos/PecanProject/pecan/pulls/394","id":31735342,"html_url":"https://github.com/PecanProject/pecan/pull/394","diff_url":"https://github.com/PecanProject/pecan/pull/394.diff","patch_url":"https://github.com/PecanProject/pecan/pull/394.patch","issue_url":"https://api.github.com/repos/PecanProject/pecan/issues/394","number":394,"state":"closed","locked":false,"title":"New and improved (and FAST) RTM package","user":{"login":"blowfish711","id":5680221,"avatar_url":"https://avatars.githubusercontent.com/u/5680221?v=3","gravatar_id":"","url":"https://api.github.com/users/blowfish711","html_url":"https://github.com/blowfish711","followers_url":"https://api.github.com/users/blowfish711/followers","following_url":"https://api.github.com/users/blowfish711/following{/other_user}","gists_url":"https://api.github.com/users/blowfish711/gists{/gist_id}","starred_url":"https://api.github.com/users/blowfish711/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blowfish711/subscriptions","organizations_url":"https://api.github.com/users/blowfish711/orgs","repos_url":"https://api.github.com/users/blowfish711/repos","events_url":"https://api.github.com/users/blowfish711/events{/privacy}","received_events_url":"https://api.github.com/users/blowfish711/received_events","type":"User","site_admin":false},"body":"The PROSPECT model and its Bayesian inversion are now written in C++ with Rcpp structures. Both of these have R wrappers for slightly more versatile calling (though the native Rcpp functions can be called directly as well).\r\n\r\nThe main new dependency is Rcpp, which I added to `install.dependencies.R`. The C++ scripts also need to be able to access the `Rmath.h` header files (for base versions of d/r/p/q statistical functions), which are present under any normal R installation and are usually referenced correctly by default building within R, but require the `-I` flag if compiled independently.\r\n\r\nThe basic inversion without random effects works very well and is VERY fast, especially for individual spectra. The speed scales linearly with size of spectra because it involves a larger matrix sum in the likelihood computation. \r\n\r\nThe random effects inversion compiles and runs without error, but tends to get stuck after ~100 iterations. I'm currently trying to figure out what's causing this issue and reading about potential alternatives/improvements to naive Metropolis-Hastings (e.g [delayed acceptance](http://arxiv.org/abs/1406.2660), [Hamiltonian Monte Carlo](http://www.mcmchandbook.net/HandbookChapter5.pdf).\r\n\r\n","created_at":"2015-03-23T14:15:28Z","updated_at":"2015-03-26T16:58:40Z","closed_at":"2015-03-26T16:58:40Z","merged_at":"2015-03-26T16:58:40Z","merge_commit_sha":"8f043690f1542b3c7cd9a2e6105f841415ac4f72","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/PecanProject/pecan/pulls/394/commits","review_comments_url":"https://api.github.com/repos/PecanProject/pecan/pulls/394/comments","review_comment_url":"https://api.github.com/repos/PecanProject/pecan/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PecanProject/pecan/issues/394/comments","statuses_url":"https://api.github.com/repos/PecanProject/pecan/statuses/c5d77346c8c8e960c1d86e250060a475a6035125","head":{"label":"blowfish711:master","ref":"master","sha":"c5d77346c8c8e960c1d86e250060a475a6035125","user":{"login":"blowfish711","id":5680221,"avatar_url":"https://avatars.githubusercontent.com/u/5680221?v=3","gravatar_id":"","url":"https://api.github.com/users/blowfish711","html_url":"https://github.com/blowfish711","followers_url":"https://api.github.com/users/blowfish711/followers","following_url":"https://api.github.com/users/blowfish711/following{/other_user}","gists_url":"https://api.github.com/users/blowfish711/gists{/gist_id}","starred_url":"https://api.github.com/users/blowfish711/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blowfish711/subscriptions","organizations_url":"https://api.github.com/users/blowfish711/orgs","repos_url":"https://api.github.com/users/blowfish711/repos","events_url":"https://api.github.com/users/blowfish711/events{/privacy}","received_events_url":"https://api.github.com/users/blowfish711/received_events","type":"User","site_admin":false},"repo":{"id":28980311,"name":"pecan","full_name":"blowfish711/pecan","owner":{"login":"blowfish711","id":5680221,"avatar_url":"https://avatars.githubusercontent.com/u/5680221?v=3","gravatar_id":"","url":"https://api.github.com/users/blowfish711","html_url":"https://github.com/blowfish711","followers_url":"https://api.github.com/users/blowfish711/followers","following_url":"https://api.github.com/users/blowfish711/following{/other_user}","gists_url":"https://api.github.com/users/blowfish711/gists{/gist_id}","starred_url":"https://api.github.com/users/blowfish711/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/blowfish711/subscriptions","organizations_url":"https://api.github.com/users/blowfish711/orgs","repos_url":"https://api.github.com/users/blowfish711/repos","events_url":"https://api.github.com/users/blowfish711/events{/privacy}","received_events_url":"https://api.github.com/users/blowfish711/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/blowfish711/pecan","description":"The Predictive Ecosystem Analyzer (PEcAn) is an integrated ecological bioinformatics toolbox.","fork":true,"url":"https://api.github.com/repos/blowfish711/pecan","forks_url":"https://api.github.com/repos/blowfish711/pecan/forks","keys_url":"https://api.github.com/repos/blowfish711/pecan/keys{/key_id}","collaborators_url":"https://api.github.com/repos/blowfish711/pecan/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/blowfish711/pecan/teams","hooks_url":"https://api.github.com/repos/blowfish711/pecan/hooks","issue_events_url":"https://api.github.com/repos/blowfish711/pecan/issues/events{/number}","events_url":"https://api.github.com/repos/blowfish711/pecan/events","assignees_url":"https://api.github.com/repos/blowfish711/pecan/assignees{/user}","branches_url":"https://api.github.com/repos/blowfish711/pecan/branches{/branch}","tags_url":"https://api.github.com/repos/blowfish711/pecan/tags","blobs_url":"https://api.github.com/repos/blowfish711/pecan/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/blowfish711/pecan/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/blowfish711/pecan/git/refs{/sha}","trees_url":"https://api.github.com/repos/blowfish711/pecan/git/trees{/sha}","statuses_url":"https://api.github.com/repos/blowfish711/pecan/statuses/{sha}","languages_url":"https://api.github.com/repos/blowfish711/pecan/languages","stargazers_url":"https://api.github.com/repos/blowfish711/pecan/stargazers","contributors_url":"https://api.github.com/repos/blowfish711/pecan/contributors","subscribers_url":"https://api.github.com/repos/blowfish711/pecan/subscribers","subscription_url":"https://api.github.com/repos/blowfish711/pecan/subscription","commits_url":"https://api.github.com/repos/blowfish711/pecan/commits{/sha}","git_commits_url":"https://api.github.com/repos/blowfish711/pecan/git/commits{/sha}","comments_url":"https://api.github.com/repos/blowfish711/pecan/comments{/number}","issue_comment_url":"https://api.github.com/repos/blowfish711/pecan/issues/comments{/number}","contents_url":"https://api.github.com/repos/blowfish711/pecan/contents/{+path}","compare_url":"https://api.github.com/repos/blowfish711/pecan/compare/{base}...{head}","merges_url":"https://api.github.com/repos/blowfish711/pecan/merges","archive_url":"https://api.github.com/repos/blowfish711/pecan/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/blowfish711/pecan/downloads","issues_url":"https://api.github.com/repos/blowfish711/pecan/issues{/number}","pulls_url":"https://api.github.com/repos/blowfish711/pecan/pulls{/number}","milestones_url":"https://api.github.com/repos/blowfish711/pecan/milestones{/number}","notifications_url":"https://api.github.com/repos/blowfish711/pecan/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/blowfish711/pecan/labels{/name}","releases_url":"https://api.github.com/repos/blowfish711/pecan/releases{/id}","created_at":"2015-01-08T18:44:03Z","updated_at":"2015-03-26T16:57:31Z","pushed_at":"2015-03-26T16:57:31Z","git_url":"git://github.com/blowfish711/pecan.git","ssh_url":"git@github.com:blowfish711/pecan.git","clone_url":"https://github.com/blowfish711/pecan.git","svn_url":"https://github.com/blowfish711/pecan","homepage":"www.pecanproject.org","size":104602,"stargazers_count":0,"watchers_count":0,"language":"R","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":6,"forks":0,"open_issues":6,"watchers":0,"default_branch":"master"}},"base":{"label":"PecanProject:master","ref":"master","sha":"623dfc9204d51f3e228da07baa20cba63307f8df","user":{"login":"PecanProject","id":2879854,"avatar_url":"https://avatars.githubusercontent.com/u/2879854?v=3","gravatar_id":"","url":"https://api.github.com/users/PecanProject","html_url":"https://github.com/PecanProject","followers_url":"https://api.github.com/users/PecanProject/followers","following_url":"https://api.github.com/users/PecanProject/following{/other_user}","gists_url":"https://api.github.com/users/PecanProject/gists{/gist_id}","starred_url":"https://api.github.com/users/PecanProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PecanProject/subscriptions","organizations_url":"https://api.github.com/users/PecanProject/orgs","repos_url":"https://api.github.com/users/PecanProject/repos","events_url":"https://api.github.com/users/PecanProject/events{/privacy}","received_events_url":"https://api.github.com/users/PecanProject/received_events","type":"Organization","site_admin":false},"repo":{"id":6857384,"name":"pecan","full_name":"PecanProject/pecan","owner":{"login":"PecanProject","id":2879854,"avatar_url":"https://avatars.githubusercontent.com/u/2879854?v=3","gravatar_id":"","url":"https://api.github.com/users/PecanProject","html_url":"https://github.com/PecanProject","followers_url":"https://api.github.com/users/PecanProject/followers","following_url":"https://api.github.com/users/PecanProject/following{/other_user}","gists_url":"https://api.github.com/users/PecanProject/gists{/gist_id}","starred_url":"https://api.github.com/users/PecanProject/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PecanProject/subscriptions","organizations_url":"https://api.github.com/users/PecanProject/orgs","repos_url":"https://api.github.com/users/PecanProject/repos","events_url":"https://api.github.com/users/PecanProject/events{/privacy}","received_events_url":"https://api.github.com/users/PecanProject/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/PecanProject/pecan","description":"The Predictive Ecosystem Analyzer (PEcAn) is an integrated ecological bioinformatics toolbox.","fork":false,"url":"https://api.github.com/repos/PecanProject/pecan","forks_url":"https://api.github.com/repos/PecanProject/pecan/forks","keys_url":"https://api.github.com/repos/PecanProject/pecan/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PecanProject/pecan/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PecanProject/pecan/teams","hooks_url":"https://api.github.com/repos/PecanProject/pecan/hooks","issue_events_url":"https://api.github.com/repos/PecanProject/pecan/issues/events{/number}","events_url":"https://api.github.com/repos/PecanProject/pecan/events","assignees_url":"https://api.github.com/repos/PecanProject/pecan/assignees{/user}","branches_url":"https://api.github.com/repos/PecanProject/pecan/branches{/branch}","tags_url":"https://api.github.com/repos/PecanProject/pecan/tags","blobs_url":"https://api.github.com/repos/PecanProject/pecan/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PecanProject/pecan/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PecanProject/pecan/git/refs{/sha}","trees_url":"https://api.github.com/repos/PecanProject/pecan/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PecanProject/pecan/statuses/{sha}","languages_url":"https://api.github.com/repos/PecanProject/pecan/languages","stargazers_url":"https://api.github.com/repos/PecanProject/pecan/stargazers","contributors_url":"https://api.github.com/repos/PecanProject/pecan/contributors","subscribers_url":"https://api.github.com/repos/PecanProject/pecan/subscribers","subscription_url":"https://api.github.com/repos/PecanProject/pecan/subscription","commits_url":"https://api.github.com/repos/PecanProject/pecan/commits{/sha}","git_commits_url":"https://api.github.com/repos/PecanProject/pecan/git/commits{/sha}","comments_url":"https://api.github.com/repos/PecanProject/pecan/comments{/number}","issue_comment_url":"https://api.github.com/repos/PecanProject/pecan/issues/comments{/number}","contents_url":"https://api.github.com/repos/PecanProject/pecan/contents/{+path}","compare_url":"https://api.github.com/repos/PecanProject/pecan/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PecanProject/pecan/merges","archive_url":"https://api.github.com/repos/PecanProject/pecan/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PecanProject/pecan/downloads","issues_url":"https://api.github.com/repos/PecanProject/pecan/issues{/number}","pulls_url":"https://api.github.com/repos/PecanProject/pecan/pulls{/number}","milestones_url":"https://api.github.com/repos/PecanProject/pecan/milestones{/number}","notifications_url":"https://api.github.com/repos/PecanProject/pecan/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PecanProject/pecan/labels{/name}","releases_url":"https://api.github.com/repos/PecanProject/pecan/releases{/id}","created_at":"2012-11-25T23:48:26Z","updated_at":"2015-03-26T15:56:37Z","pushed_at":"2015-03-26T16:58:41Z","git_url":"git://github.com/PecanProject/pecan.git","ssh_url":"git@github.com:PecanProject/pecan.git","clone_url":"https://github.com/PecanProject/pecan.git","svn_url":"https://github.com/PecanProject/pecan","homepage":"www.pecanproject.org","size":328366,"stargazers_count":21,"watchers_count":21,"language":"R","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":54,"mirror_url":null,"open_issues_count":101,"forks":54,"open_issues":101,"watchers":21,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PecanProject/pecan/pulls/394"},"html":{"href":"https://github.com/PecanProject/pecan/pull/394"},"issue":{"href":"https://api.github.com/repos/PecanProject/pecan/issues/394"},"comments":{"href":"https://api.github.com/repos/PecanProject/pecan/issues/394/comments"},"review_comments":{"href":"https://api.github.com/repos/PecanProject/pecan/pulls/394/comments"},"review_comment":{"href":"https://api.github.com/repos/PecanProject/pecan/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PecanProject/pecan/pulls/394/commits"},"statuses":{"href":"https://api.github.com/repos/PecanProject/pecan/statuses/c5d77346c8c8e960c1d86e250060a475a6035125"}},"merged":true,"mergeable":null,"mergeable_state":"unknown","merged_by":{"login":"mdietze","id":3081466,"avatar_url":"https://avatars.githubusercontent.com/u/3081466?v=3","gravatar_id":"","url":"https://api.github.com/users/mdietze","html_url":"https://github.com/mdietze","followers_url":"https://api.github.com/users/mdietze/followers","following_url":"https://api.github.com/users/mdietze/following{/other_user}","gists_url":"https://api.github.com/users/mdietze/gists{/gist_id}","starred_url":"https://api.github.com/users/mdietze/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mdietze/subscriptions","organizations_url":"https://api.github.com/users/mdietze/orgs","repos_url":"https://api.github.com/users/mdietze/repos","events_url":"https://api.github.com/users/mdietze/events{/privacy}","received_events_url":"https://api.github.com/users/mdietze/received_events","type":"User","site_admin":false},"comments":6,"review_comments":17,"commits":145,"additions":1439,"deletions":1905,"changed_files":74}}