{"action":"opened","issue":{"url":"https://api.github.com/repos/INCF/pykCSD/issues/5","labels_url":"https://api.github.com/repos/INCF/pykCSD/issues/5/labels{/name}","comments_url":"https://api.github.com/repos/INCF/pykCSD/issues/5/comments","events_url":"https://api.github.com/repos/INCF/pykCSD/issues/5/events","html_url":"https://github.com/INCF/pykCSD/issues/5","id":58704912,"number":5,"title":"Split model and kernel operations parts into separate classes","user":{"login":"parkag","id":4019310,"avatar_url":"https://avatars.githubusercontent.com/u/4019310?v=3","gravatar_id":"","url":"https://api.github.com/users/parkag","html_url":"https://github.com/parkag","followers_url":"https://api.github.com/users/parkag/followers","following_url":"https://api.github.com/users/parkag/following{/other_user}","gists_url":"https://api.github.com/users/parkag/gists{/gist_id}","starred_url":"https://api.github.com/users/parkag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/parkag/subscriptions","organizations_url":"https://api.github.com/users/parkag/orgs","repos_url":"https://api.github.com/users/parkag/repos","events_url":"https://api.github.com/users/parkag/events{/privacy}","received_events_url":"https://api.github.com/users/parkag/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":0,"created_at":"2015-02-24T07:55:10Z","updated_at":"2015-02-24T07:55:10Z","closed_at":null,"body":"There are two parts of KCSD method that can be turned into separate classes.\r\nFirst part is model where we make some assumptions about the measurement process. This is currently handled by ```init_model()``` function, but it could be moved out into a separate class.\r\n\r\nTwo classes could be introduced:\r\n\r\n* ```BaseModel``` as a readable template to override\r\n* specific model that handle the current model-related operations of KCSD\r\n\r\nThe second part would be the KCSD-specific operations - calculating all the kernels.\r\n\r\nThe benefit of this approach is that model could be now used as the only parameter of the KCSD method. Models and KCSD parts could be developed independently. To handle a different model one would only need to write his own model class and instead of searching through the whole KCSD code."}}