{
  "id": 255536,
  "title": "How can I Reproduce baseline from derived file?",
  "url": "/competitions/google-smartphone-decimeter-challenge/discussion/255536",
  "author_name": "",
  "post_date": "2021-07-28T01:34:45.808942300Z",
  "votes": 20,
  "comment_count": 11,
  "views": 0,
  "content": "<p>I'm trying to reproduce baseline from derived file, but It's not going well and I need some advice. Parrot (@hyperc) shared a great notebook, but it doesn't score as well as the actual baseline.</p>\n<p>According to <a href=\"https://www.kaggle.com/c/google-smartphone-decimeter-challenge/discussion/238583\" target=\"_blank\">this discussion</a>,</p>\n<blockquote>\n  <p>It has 4+N states, where 4 refers to the user's position in ECEF and clock offset (x, y, z, t), and N states are inter-signal biases (ISB) for the number of non-GPS-L1 signal types. For instance, if the device measures signals of GPS L1 frequency, GLO G1 frequency, GPS L5 frequency, GAL E1 frequency at the same epoch, the number of non-GPS-L1 signal types equals 3 (i.e. N=3).</p>\n</blockquote>\n<p>And according to <a href=\"https://www.kaggle.com/c/google-smartphone-decimeter-challenge/data\" target=\"_blank\">data overview</a>,</p>\n<blockquote>\n  <p>[train/test]/[drive_id]/[phone_name]/[phone_name]_derived.csv - GNSS intermediate values derived from raw GNSS measurements, provided for convenience. <br>\n  The baseline locations are computed using correctedPrM and the satellite positions, using a standard Weighted Least Squares (WLS) solver, with the phone's position (x, y, z), clock bias (t), and isrbM for each unique signal type as states for each epoch.</p>\n</blockquote>\n<p>So, I fixed it to also estimate isrbM for each signal type based on the  Parrot's notebook, <strong>but the score got worse</strong>. The notebook is here.<br>\n<a href=\"https://www.kaggle.com/kuto0633/reproducing-baseline-by-estimating-each-isrbm\" target=\"_blank\">https://www.kaggle.com/kuto0633/reproducing-baseline-by-estimating-each-isrbm</a></p>\n<p>I'd like to know how to reproduce baseline. I would appreciate any advice you can give me.</p>",
  "messages": [
    {
      "id": "1402187",
      "postDate": "07/28/2021 01:34:45",
      "content": "<p>I'm trying to reproduce baseline from derived file, but It's not going well and I need some advice. Parrot (@hyperc) shared a great notebook, but it doesn't score as well as the actual baseline.</p>\n<p>According to <a href=\"https://www.kaggle.com/c/google-smartphone-decimeter-challenge/discussion/238583\" target=\"_blank\">this discussion</a>,</p>\n<blockquote>\n  <p>It has 4+N states, where 4 refers to the user's position in ECEF and clock offset (x, y, z, t), and N states are inter-signal biases (ISB) for the number of non-GPS-L1 signal types. For instance, if the device measures signals of GPS L1 frequency, GLO G1 frequency, GPS L5 frequency, GAL E1 frequency at the same epoch, the number of non-GPS-L1 signal types equals 3 (i.e. N=3).</p>\n</blockquote>\n<p>And according to <a href=\"https://www.kaggle.com/c/google-smartphone-decimeter-challenge/data\" target=\"_blank\">data overview</a>,</p>\n<blockquote>\n  <p>[train/test]/[drive_id]/[phone_name]/[phone_name]_derived.csv - GNSS intermediate values derived from raw GNSS measurements, provided for convenience. <br>\n  The baseline locations are computed using correctedPrM and the satellite positions, using a standard Weighted Least Squares (WLS) solver, with the phone's position (x, y, z), clock bias (t), and isrbM for each unique signal type as states for each epoch.</p>\n</blockquote>\n<p>So, I fixed it to also estimate isrbM for each signal type based on the  Parrot's notebook, <strong>but the score got worse</strong>. The notebook is here.<br>\n<a href=\"https://www.kaggle.com/kuto0633/reproducing-baseline-by-estimating-each-isrbm\" target=\"_blank\">https://www.kaggle.com/kuto0633/reproducing-baseline-by-estimating-each-isrbm</a></p>\n<p>I'd like to know how to reproduce baseline. I would appreciate any advice you can give me.</p>",
      "rawMarkdown": "I'm trying to reproduce baseline from derived file, but It's not going well and I need some advice. Parrot (@hyperc) shared a great notebook, but it doesn't score as well as the actual baseline.\n\nAccording to [this discussion](https://www.kaggle.com/c/google-smartphone-decimeter-challenge/discussion/238583),\n> It has 4+N states, where 4 refers to the user's position in ECEF and clock offset (x, y, z, t), and N states are inter-signal biases (ISB) for the number of non-GPS-L1 signal types. For instance, if the device measures signals of GPS L1 frequency, GLO G1 frequency, GPS L5 frequency, GAL E1 frequency at the same epoch, the number of non-GPS-L1 signal types equals 3 (i.e. N=3).\n\nAnd according to [data overview](https://www.kaggle.com/c/google-smartphone-decimeter-challenge/data),\n> [train/test]/[drive_id]/[phone_name]/[phone_name]_derived.csv - GNSS intermediate values derived from raw GNSS measurements, provided for convenience. \n> The baseline locations are computed using correctedPrM and the satellite positions, using a standard Weighted Least Squares (WLS) solver, with the phone's position (x, y, z), clock bias (t), and isrbM for each unique signal type as states for each epoch.\n\nSo, I fixed it to also estimate isrbM for each signal type based on the  Parrot's notebook, **but the score got worse**. The notebook is here.\nhttps://www.kaggle.com/kuto0633/reproducing-baseline-by-estimating-each-isrbm\n\nI'd like to know how to reproduce baseline. I would appreciate any advice you can give me.",
      "votes": null
    },
    {
      "id": "1403066",
      "postDate": "07/28/2021 18:50:22",
      "content": "<p>I also didn't understand what the 4+N states referred to, but I was able to beat the baseline without it. </p>\n<p>I didn't understand it because the inter-signal biases are known, or very close to known (I think! :) ) - there is some possible variation I think, so if you added an extra state in the least squares for each type, then it's possible there would be some variation? Not sure; I suppose I can try it and report back</p>\n<p>I think to do that, you'd add an extra column for each of the N states, then make the weight a \"1\" for the satellite type for the row, and a \"0\" for the rest… does that sound right?</p>\n<p>I looked a bit at the notebook you posted, but I'm using a slightly different technique so I couldn't follow everything… I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)</p>",
      "rawMarkdown": "I also didn't understand what the 4+N states referred to, but I was able to beat the baseline without it. \n\nI didn't understand it because the inter-signal biases are known, or very close to known (I think! :) ) - there is some possible variation I think, so if you added an extra state in the least squares for each type, then it's possible there would be some variation? Not sure; I suppose I can try it and report back\n\nI think to do that, you'd add an extra column for each of the N states, then make the weight a \"1\" for the satellite type for the row, and a \"0\" for the rest... does that sound right?\n\nI looked a bit at the notebook you posted, but I'm using a slightly different technique so I couldn't follow everything... I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)",
      "votes": null
    },
    {
      "id": "1403070",
      "postDate": "07/28/2021 19:03:43",
      "content": "<p>Great work <a href=\"https://www.kaggle.com/kuto0633\" target=\"_blank\">@kuto0633</a> and thanks for fixing my notebook (I forgot to apply tip 1 but since I was applying it to only one data point I didn't notice it was overall worse than the baseline…)</p>\n<p>I personally gave up on the idea of using the *_derived file by lack of time and skills. I really congratulate everyone who managed to make good use of it!</p>\n<p>I still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit</p>",
      "rawMarkdown": "Great work @kuto0633 and thanks for fixing my notebook (I forgot to apply tip 1 but since I was applying it to only one data point I didn't notice it was overall worse than the baseline...)\n\nI personally gave up on the idea of using the *_derived file by lack of time and skills. I really congratulate everyone who managed to make good use of it!\n\nI still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit",
      "votes": null
    },
    {
      "id": "1403168",
      "postDate": "07/28/2021 21:27:11",
      "content": "<p>I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )</p>",
      "rawMarkdown": "I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )",
      "votes": null
    },
    {
      "id": "1403232",
      "postDate": "07/29/2021 00:06:12",
      "content": "<p>Thanks for comment, chris!</p>\n<blockquote>\n  <p>I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)</p>\n</blockquote>\n<p>Ok, I' ll try to check them.</p>\n<blockquote>\n  <p>I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )</p>\n</blockquote>\n<p>Thank you very much to run the experiment. Anyway I ignore N states, and I'll try to explore other ways to go beyond baseline.</p>\n<p>Again, thanks for the valuable advice!</p>",
      "rawMarkdown": "Thanks for comment, chris!\n\n> I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)\n\nOk, I' ll try to check them.\n\n> I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )\n\nThank you very much to run the experiment. Anyway I ignore N states, and I'll try to explore other ways to go beyond baseline.\n\nAgain, thanks for the valuable advice!",
      "votes": null
    },
    {
      "id": "1403237",
      "postDate": "07/29/2021 00:16:20",
      "content": "<p>Thanks for comment, parrot! </p>\n<blockquote>\n  <p>I still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit</p>\n</blockquote>\n<p>I cunfused it too.<br>\n I also tried not adding isrbM values as variables in WLS method(only add N states) but not improve.</p>\n<p>Reproducing baseline seems difficult. so I'll try other way.</p>\n<p>Again, thank you for your comment and great notebook!</p>",
      "rawMarkdown": "Thanks for comment, parrot! \n\n> I still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit\n\nI cunfused it too.\n I also tried not adding isrbM values as variables in WLS method(only add N states) but not improve.\n\nReproducing baseline seems difficult. so I'll try other way.\n\nAgain, thank you for your comment and great notebook!",
      "votes": null
    },
    {
      "id": "1403755",
      "postDate": "07/29/2021 10:17:40",
      "content": "<p>I think you can not estimate isrbM at epochs with a very few mesurments<br>\nTry to add a penalty for non zero isrbM</p>",
      "rawMarkdown": "I think you can not estimate isrbM at epochs with a very few mesurments\nTry to add a penalty for non zero isrbM",
      "votes": null
    },
    {
      "id": "1403845",
      "postDate": "07/29/2021 11:17:33",
      "content": "<p>Thanks for your comment.<br>\nIf you don't mind me asking, what does this mean?</p>\n<blockquote>\n  <p>Try to add a penalty for non zero isrbM</p>\n</blockquote>",
      "rawMarkdown": "Thanks for your comment.\nIf you don't mind me asking, what does this mean?\n> Try to add a penalty for non zero isrbM",
      "votes": null
    },
    {
      "id": "1403977",
      "postDate": "07/29/2021 13:16:45",
      "content": "<p>If you have N equation with M variables and N &lt;&lt; M you will not able to get right solution without additional assumtions. So if you have distance to 4 satellite you can try to calculate position (3 variables) and time bias (+1 variable) and if you lucky you will get it in some precision. You will not be able to calculate isrbm in that case. So you can try use simple method if you have &lt; 10 satellites and _v2 in other cases. Or add penalty to isrbm. Something like that<br>\nd = np.abs(weight * (np.sqrt(satx<strong>2 + saty</strong>2 +satz**2) + x[3] - prm + isrbms_loss)) + np.abs(isrbms_loss)</p>\n<p>I am not sure you will get better results than baseline, but it will remove large errors on points with small amount of satellites</p>",
      "rawMarkdown": "If you have N equation with M variables and N << M you will not able to get right solution without additional assumtions. So if you have distance to 4 satellite you can try to calculate position (3 variables) and time bias (+1 variable) and if you lucky you will get it in some precision. You will not be able to calculate isrbm in that case. So you can try use simple method if you have < 10 satellites and _v2 in other cases. Or add penalty to isrbm. Something like that\nd = np.abs(weight * (np.sqrt(satx**2 + saty**2 +satz**2) + x[3] - prm + isrbms_loss)) + np.abs(isrbms_loss)\n\nI am not sure you will get better results than baseline, but it will remove large errors on points with small amount of satellites",
      "votes": null
    },
    {
      "id": "1404007",
      "postDate": "07/29/2021 13:42:29",
      "content": "<p>Thanks for your advice! <br>\nI'll try it.</p>",
      "rawMarkdown": "Thanks for your advice! \nI'll try it.",
      "votes": null
    },
    {
      "id": "1404041",
      "postDate": "07/29/2021 14:11:35",
      "content": "<p>I just have look a little bit closer to your notebook and now I understand that it is not fully clear to me what are you doing in distance_v2. From my POV if you want to calculate isrbm you need to add it to corresponding satellite<br>\nsatid = np.array(kwargs[\"satid\"]) + 4 // integer id of satellite system<br>\nd = weight * (np.sqrt(satx<strong>2 + saty</strong>2 +satz**2) + x[3] - prm + x[satid])</p>",
      "rawMarkdown": "I just have look a little bit closer to your notebook and now I understand that it is not fully clear to me what are you doing in distance_v2. From my POV if you want to calculate isrbm you need to add it to corresponding satellite\nsatid = np.array(kwargs[\"satid\"]) + 4 // integer id of satellite system\nd = weight * (np.sqrt(satx**2 + saty**2 +satz**2) + x[3] - prm + x[satid])",
      "votes": null
    },
    {
      "id": "1404540",
      "postDate": "07/30/2021 02:36:06",
      "content": "<p>I see, Thank you!</p>",
      "rawMarkdown": "I see, Thank you!",
      "votes": null
    }
  ],
  "comments": [
    {
      "id": 1403066,
      "author_name": "chris62",
      "author_url": "",
      "post_date": "07/28/2021 18:50:22",
      "content": "<p>I also didn't understand what the 4+N states referred to, but I was able to beat the baseline without it. </p>\n<p>I didn't understand it because the inter-signal biases are known, or very close to known (I think! :) ) - there is some possible variation I think, so if you added an extra state in the least squares for each type, then it's possible there would be some variation? Not sure; I suppose I can try it and report back</p>\n<p>I think to do that, you'd add an extra column for each of the N states, then make the weight a \"1\" for the satellite type for the row, and a \"0\" for the rest… does that sound right?</p>\n<p>I looked a bit at the notebook you posted, but I'm using a slightly different technique so I couldn't follow everything… I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)</p>",
      "votes": null,
      "replies": [
        {
          "id": 1403168,
          "author_name": "chris62",
          "author_url": "",
          "post_date": "07/28/2021 21:27:11",
          "content": "<p>I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1403232,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "07/29/2021 00:06:12",
          "content": "<p>Thanks for comment, chris!</p>\n<blockquote>\n  <p>I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)</p>\n</blockquote>\n<p>Ok, I' ll try to check them.</p>\n<blockquote>\n  <p>I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )</p>\n</blockquote>\n<p>Thank you very much to run the experiment. Anyway I ignore N states, and I'll try to explore other ways to go beyond baseline.</p>\n<p>Again, thanks for the valuable advice!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1403070,
      "author_name": "hyperc",
      "author_url": "",
      "post_date": "07/28/2021 19:03:43",
      "content": "<p>Great work <a href=\"https://www.kaggle.com/kuto0633\" target=\"_blank\">@kuto0633</a> and thanks for fixing my notebook (I forgot to apply tip 1 but since I was applying it to only one data point I didn't notice it was overall worse than the baseline…)</p>\n<p>I personally gave up on the idea of using the *_derived file by lack of time and skills. I really congratulate everyone who managed to make good use of it!</p>\n<p>I still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit</p>",
      "votes": null,
      "replies": [
        {
          "id": 1403237,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "07/29/2021 00:16:20",
          "content": "<p>Thanks for comment, parrot! </p>\n<blockquote>\n  <p>I still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit</p>\n</blockquote>\n<p>I cunfused it too.<br>\n I also tried not adding isrbM values as variables in WLS method(only add N states) but not improve.</p>\n<p>Reproducing baseline seems difficult. so I'll try other way.</p>\n<p>Again, thank you for your comment and great notebook!</p>",
          "votes": null,
          "replies": []
        }
      ]
    },
    {
      "id": 1403755,
      "author_name": "ielenik",
      "author_url": "",
      "post_date": "07/29/2021 10:17:40",
      "content": "<p>I think you can not estimate isrbM at epochs with a very few mesurments<br>\nTry to add a penalty for non zero isrbM</p>",
      "votes": null,
      "replies": [
        {
          "id": 1403845,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "07/29/2021 11:17:33",
          "content": "<p>Thanks for your comment.<br>\nIf you don't mind me asking, what does this mean?</p>\n<blockquote>\n  <p>Try to add a penalty for non zero isrbM</p>\n</blockquote>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1403977,
          "author_name": "ielenik",
          "author_url": "",
          "post_date": "07/29/2021 13:16:45",
          "content": "<p>If you have N equation with M variables and N &lt;&lt; M you will not able to get right solution without additional assumtions. So if you have distance to 4 satellite you can try to calculate position (3 variables) and time bias (+1 variable) and if you lucky you will get it in some precision. You will not be able to calculate isrbm in that case. So you can try use simple method if you have &lt; 10 satellites and _v2 in other cases. Or add penalty to isrbm. Something like that<br>\nd = np.abs(weight * (np.sqrt(satx<strong>2 + saty</strong>2 +satz**2) + x[3] - prm + isrbms_loss)) + np.abs(isrbms_loss)</p>\n<p>I am not sure you will get better results than baseline, but it will remove large errors on points with small amount of satellites</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1404007,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "07/29/2021 13:42:29",
          "content": "<p>Thanks for your advice! <br>\nI'll try it.</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1404041,
          "author_name": "ielenik",
          "author_url": "",
          "post_date": "07/29/2021 14:11:35",
          "content": "<p>I just have look a little bit closer to your notebook and now I understand that it is not fully clear to me what are you doing in distance_v2. From my POV if you want to calculate isrbm you need to add it to corresponding satellite<br>\nsatid = np.array(kwargs[\"satid\"]) + 4 // integer id of satellite system<br>\nd = weight * (np.sqrt(satx<strong>2 + saty</strong>2 +satz**2) + x[3] - prm + x[satid])</p>",
          "votes": null,
          "replies": []
        },
        {
          "id": 1404540,
          "author_name": "kuto0633",
          "author_url": "",
          "post_date": "07/30/2021 02:36:06",
          "content": "<p>I see, Thank you!</p>",
          "votes": null,
          "replies": []
        }
      ]
    }
  ],
  "raw_markdown_by_id": {
    "1402187": "I'm trying to reproduce baseline from derived file, but It's not going well and I need some advice. Parrot (@hyperc) shared a great notebook, but it doesn't score as well as the actual baseline.\n\nAccording to [this discussion](https://www.kaggle.com/c/google-smartphone-decimeter-challenge/discussion/238583),\n> It has 4+N states, where 4 refers to the user's position in ECEF and clock offset (x, y, z, t), and N states are inter-signal biases (ISB) for the number of non-GPS-L1 signal types. For instance, if the device measures signals of GPS L1 frequency, GLO G1 frequency, GPS L5 frequency, GAL E1 frequency at the same epoch, the number of non-GPS-L1 signal types equals 3 (i.e. N=3).\n\nAnd according to [data overview](https://www.kaggle.com/c/google-smartphone-decimeter-challenge/data),\n> [train/test]/[drive_id]/[phone_name]/[phone_name]_derived.csv - GNSS intermediate values derived from raw GNSS measurements, provided for convenience. \n> The baseline locations are computed using correctedPrM and the satellite positions, using a standard Weighted Least Squares (WLS) solver, with the phone's position (x, y, z), clock bias (t), and isrbM for each unique signal type as states for each epoch.\n\nSo, I fixed it to also estimate isrbM for each signal type based on the  Parrot's notebook, **but the score got worse**. The notebook is here.\nhttps://www.kaggle.com/kuto0633/reproducing-baseline-by-estimating-each-isrbm\n\nI'd like to know how to reproduce baseline. I would appreciate any advice you can give me.",
    "1403066": "I also didn't understand what the 4+N states referred to, but I was able to beat the baseline without it. \n\nI didn't understand it because the inter-signal biases are known, or very close to known (I think! :) ) - there is some possible variation I think, so if you added an extra state in the least squares for each type, then it's possible there would be some variation? Not sure; I suppose I can try it and report back\n\nI think to do that, you'd add an extra column for each of the N states, then make the weight a \"1\" for the satellite type for the row, and a \"0\" for the rest... does that sound right?\n\nI looked a bit at the notebook you posted, but I'm using a slightly different technique so I couldn't follow everything... I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)",
    "1403070": "Great work @kuto0633 and thanks for fixing my notebook (I forgot to apply tip 1 but since I was applying it to only one data point I didn't notice it was overall worse than the baseline...)\n\nI personally gave up on the idea of using the *_derived file by lack of time and skills. I really congratulate everyone who managed to make good use of it!\n\nI still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit",
    "1403168": "I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )",
    "1403232": "Thanks for comment, chris!\n\n> I guess I'd say make sure you're doing all the filtering of the bad measurements, and also check your weights for the least squares - it's possible there's a mistake there (but again, I'm doing something slightly different, so I'm not 100% sure)\n\nOk, I' ll try to check them.\n\n> I ran that as an experiment, and my results also got slightly worse using the additional N states - so I think you're ok to ignore them (unless I did it wrong, which is entirely possible! :) )\n\nThank you very much to run the experiment. Anyway I ignore N states, and I'll try to explore other ways to go beyond baseline.\n\nAgain, thanks for the valuable advice!",
    "1403237": "Thanks for comment, parrot! \n\n> I still had a quick look at the notebook. I see that you are adding isrbM values as variables in your WLS method, but you are still using the isrbM values provided in the *derived file to compute the 'correctedPrM' field? this confuses me a bit\n\nI cunfused it too.\n I also tried not adding isrbM values as variables in WLS method(only add N states) but not improve.\n\nReproducing baseline seems difficult. so I'll try other way.\n\nAgain, thank you for your comment and great notebook!",
    "1403755": "I think you can not estimate isrbM at epochs with a very few mesurments\nTry to add a penalty for non zero isrbM",
    "1403845": "Thanks for your comment.\nIf you don't mind me asking, what does this mean?\n> Try to add a penalty for non zero isrbM",
    "1403977": "If you have N equation with M variables and N << M you will not able to get right solution without additional assumtions. So if you have distance to 4 satellite you can try to calculate position (3 variables) and time bias (+1 variable) and if you lucky you will get it in some precision. You will not be able to calculate isrbm in that case. So you can try use simple method if you have < 10 satellites and _v2 in other cases. Or add penalty to isrbm. Something like that\nd = np.abs(weight * (np.sqrt(satx**2 + saty**2 +satz**2) + x[3] - prm + isrbms_loss)) + np.abs(isrbms_loss)\n\nI am not sure you will get better results than baseline, but it will remove large errors on points with small amount of satellites",
    "1404007": "Thanks for your advice! \nI'll try it.",
    "1404041": "I just have look a little bit closer to your notebook and now I understand that it is not fully clear to me what are you doing in distance_v2. From my POV if you want to calculate isrbm you need to add it to corresponding satellite\nsatid = np.array(kwargs[\"satid\"]) + 4 // integer id of satellite system\nd = weight * (np.sqrt(satx**2 + saty**2 +satz**2) + x[3] - prm + x[satid])",
    "1404540": "I see, Thank you!"
  },
  "source": "meta"
}