Rajat Bindlish

126 papers C 66Journal 55Unranked 5
YearRankTypeTitle / Venue / Authors
2025 J jnl
IEEE Trans. Geosci. Remote. Sens.
Mohammad M. Al-Khaldi, Joel T. Johnson, Darren S. McKague, Scott Gleason, Frederick Policelli, Rajat Bindlish, Dorina Twigg, Anthony Russel
2025 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Wade T. Crow, Andrew F. Feldman, Rajat Bindlish
2024 C conf
IGARSS
Dustin Horton, Joel T. Johnson, Mohammad M. Al-Khaldi, Jeonghwan Park, Rajat Bindlish
2024 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Mohammad M. Al-Khaldi, Joel T. Johnson, Dustin Horton, Darren S. McKague, Dorina Twigg, Anthony Russel, Frederick Policelli, Jeffrey D. Ouellette, Rajat Bindlish, Jeonghwan Park
2024 J jnl
IEEE Geosci. Remote. Sens. Lett.
Dustin Horton, Alexandra Bringer, Joel T. Johnson, Jeonghwan Park, Mohammad M. Al-Khaldi, Rajat Bindlish
2024 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Jeonghwan Park, Rajat Bindlish, Alexandra Bringer, Dustin Horton, Joel T. Johnson
2024 J jnl
Remote. Sens.
Dustin Horton, Joel T. Johnson, Ismail Baris, Thomas Jagdhuber, Rajat Bindlish, Jeonghwan Park, Mohammad M. Al-Khaldi
2023 J jnl
Remote. Sens.
Runze Zhang, Steven Chan, Rajat Bindlish, Venkataraman Lakshmi
2023 J jnl
IEEE Geosci. Remote. Sens. Lett.
James L. Garrison, Benjamin Nold, Dallas Masters, Conor Brown, Jordan Bridgeman, Justin R. Mansell, Manuel S. Vega, Rajat Bindlish, Jeffrey Piepmeier, Sachidananda R. Babu
2023 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Jinyang Du, John S. Kimball, Steven Tsz K. Chan, Mario Julian Chaubell, Rajat Bindlish, Roy Scott Dunbar, Andreas Colliander
2023 J jnl
Remote. Sens.
Juby Thomas, Manika Gupta, Prashant K. Srivastava, Dharmendra Kumar Pandey, Rajat Bindlish
2023 C conf
IGARSS
David G. Long, Rajat Bindlish, Jeffrey Piepmeier, Giovanni De Amici, Mark Bailey
2022 J jnl
Int. J. Appl. Earth Obs. Geoinformation
Chen Zhang, Zhengwei Yang, Haoteng Zhao, Ziheng Sun, Liping Di, Rajat Bindlish, Pang-Wei Liu, Andreas Colliander, Rick Mueller, Wade T. Crow, Rolf H. Reichle, John D. Bolten, Simon H. Yueh
2022 C conf
IGARSS
James L. Garrison, Justin R. Mansell, Benjamin S. Nold, Rashmi Shah, Manuel A. Vega, Seho Kim, Juan C. Raymond, Rajat Bindlish, Mehmet Kurum, Jeffrey Piepmeier, Roger Banting
2022 J jnl
Remote. Sens.
Jinyang Du, John S. Kimball, Rajat Bindlish, Jeffrey P. Walker, Jennifer D. Watts
2022 C conf
IGARSS
Alexandra Bringer, Joel T. Johnson, Jeonghwan Park, Rajat Bindlish, Dustin Horton
2022 C conf
IGARSS
Ming Li, Roger H. Lang, Rajat Bindlish, Peggy O'Neill, Michael H. Cosh
2022 C conf
IGARSS
Dustin Horton, Alexandra Bringer, Joel T. Johnson, Jeonghwan Park, Rajat Bindlish
2022 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Julian Chaubell, Simon Yueh, Roy Scott Dunbar, Andreas Colliander, Dara Entekhabi, Steven Chan, Fan Chen, Xiaolan Xu, Rajat Bindlish, Peggy O'Neill, Jun Asanuma, Aaron A. Berg, David D. Bosch, Todd Caldwell, Michael H. Cosh, Chandra D. Holifield Collins, Karsten H. Jensen, José Martínez-Fernández, Mark S. Seyfried, Patrick J. Starks, Zhongbo Su, Marc Thibeault, Jeffrey P. Walker
2022 C conf
IGARSS
Dara Entekhabi, Simon H. Yueh, Rajat Bindlish, Jared K. Entin, Mark D. Garcia
2022 C conf
IGARSS
David Long, Rajat Bindlish, Jeffrey Piepmeier, Mark Bailey
2022 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Pang-Wei Liu, Rajat Bindlish, Peggy O'Neill, Bin Fang, Venkat Lakshmi, Zhengwei Yang, Michael H. Cosh, Tara Bongiovanni, Chandra D. Holifield Collins, Patrick J. Starks, John H. Prueger, David D. Bosch, Mark S. Seyfried, Mark R. Williams
2022 C conf
IGARSS
Jeonghwan Park, Rajat Bindlish, Alexandra Bringer, Dustin Horton, Joel T. Johnson
2022 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Andreas Colliander, Rolf H. Reichle, Wade T. Crow, Michael H. Cosh, Fan Chen, Steven Chan, Narendra Narayan Das, Rajat Bindlish, Julian Chaubell, Seung-Bum Kim, Qing Liu, Peggy E. O'Neill, Roy Scott Dunbar, Land B. Dang, John S. Kimball, Thomas J. Jackson, Hala Khalid AlJassar, Jun Asanuma, Bimal K. Bhattacharya, Aaron A. Berg, David D. Bosch, Laura L. Bourgeau-Chavez, Todd Caldwell, Jean-Christophe Calvet, Chandra D. Holifield Collins, Karsten H. Jensen, Stanley Livingston, Ernesto López-Baeza, José Martínez-Fernández, Heather McNairn, Mahta Moghaddam, Carsten Montzka, Claudia Notarnicola, Thierry Pellarin, Isabella Greimeister-Pfeil, Jouni Pulliainen, Judith Gpe. Ramos, Mark S. Seyfried, Patrick J. Starks, Zhongbo Su, Rogier van der Velde, Yijian Zeng, Marc Thibeault, Mariette Vreugdenhil, Jeffrey P. Walker, Mehrez Zribi, Dara Entekhabi, Simon H. Yueh
2021 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Pang-Wei Liu, Rajat Bindlish, Bin Fang, Venkat Lakshmi, Peggy E. O'Neill, Zhengwei Yang, Michael H. Cosh, Tara Bongiovanni, David D. Bosch, Chandra D. Holifield Collins, Patrick J. Starks, John H. Prueger, Mark S. Seyfried, Stanley Livingston
2021 C conf
IGARSS
Zhengwei Yang, Chen Zhang, Haoteng Zhao, Ziheng Sun, Rajat Bindlish, Pang-Wei Liu, Andreas Colliander, Rick Mueller, Liping Di, Wade T. Crow, Rolf Reichle
2021 C conf
IGARSS
Dylan R. Boyd, Mehmet Kurum, James L. Garrison, Benjamin Nold, Manuel S. Vega, Rajat Bindlish, Jeffrey Piepmeier
2021 J jnl
Remote. Sens.
Runze Zhang, Steven Chan, Rajat Bindlish, Venkataraman Lakshmi
2021 C conf
IGARSS
David G. Long, Rajat Bindlish, Jeffrey Piepmeier, Giovanni De Amici, Mark Bailey
2021 C conf
IGARSS
Julian Chaubell, Simon Yueh, Steven Chan, Roy Scott Dunbar, Andreas Colliander, Dara Entekhabi, Fan Chen, Rajat Bindlish, Peggy O'Neill
2021 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Joel T. Johnson, Kenneth C. Jezek, Giovanni Macelloni, Marco Brogioni, Leung Tsang, Emmanuel P. Dinnat, Jeffrey P. Walker, Nan Ye, Sidharth Misra, Jeffrey R. Piepmeier, Rajat Bindlish, David M. Le Vine, Peggy E. O'Neill, Lars Kaleschke, Mark J. Andrews, Caglar Yardim, Mustafa Aksoy, Michael Durand, Chi-Chih Chen, Oguz Demir, Alexandra Bringer, Julie Z. Miller, Shannon T. Brown, Ron Kwok, Tong Lee, Yann Kerr, Dara Entekhabi, Jinzheng Peng, Andreas Colliander, Steven Chan, Joseph A. MacGregor, Brooke Medley, Roger DeRoo, Mark Drinkwater
2021 C conf
IGARSS
James L. Garrison, Rashmi Shah, Benjamin Nold, Justin R. Mansell, Manuel A. Vega, Juan C. Raymond, Rajat Bindlish, Mehmet Kurum, Jeffrey Piepmeier, Seho Kim, Roger Banting, Kameron Larsen
2021 C conf
IGARSS
Jeonghwan Park, Rajat Bindlish, Alexandra Bringer, Dustin Horton, Joel T. Johnson
2021 C conf
IGARSS
Dustin Horton, Alexandra Bringer, Joel T. Johnson, Jeonghwan Park, Rajat Bindlish
2020 C conf
IGARSS
James L. Garrison, Rashmi Shah, Seho Kim, Jeffrey Piepmeier, Manuel A. Vega, David A. Spencer, Roger Banting, Juan C. Raymond, Benjamin Nold, Kameron Larsen, Rajat Bindlish
2020 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Dylan R. Boyd, Ali Cafer Gürbüz, Mehmet Kurum, James L. Garrison, Benjamin Nold, Jeffrey R. Piepmeier, Manuel Vega, Rajat Bindlish
2020 J jnl
IEEE Trans. Geosci. Remote. Sens.
Mario Julian Chaubell, Simon H. Yueh, Roy Scott Dunbar, Andreas Colliander, Fan Chen, Steven Tsz K. Chan, Dara Entekhabi, Rajat Bindlish, Peggy E. O'Neill, Jun Asanuma, Aaron A. Berg, David D. Bosch, Todd Caldwell, Michael H. Cosh, Chandra D. Holifield Collins, José Martínez-Fernández, Mark S. Seyfried, Patrick J. Starks, Zhongbo Su, Marc Thibeault, Jeffrey P. Walker
2020 C conf
IGARSS
Alexandra Bringer, Joel T. Johnson, Rajat Bindlish
2020 J jnl
Remote. Sens.
Dylan Boyd, Mehmet Kurum, Orhan Eroglu, Ali Cafer Gürbüz, James L. Garrison, Benjamin Nold, Manuel A. Vega, Jeffrey R. Piepmeier, Rajat Bindlish
2020 C conf
IGARSS
Yann H. Kerr, Nemesio Rodriguez-Fernandez, Eric Anterrieu, Maria José Escorihuela, Matthias Drusch, Josep Closa, Alberto Zurita, François Cabot, Thierry Amiot, Rajat Bindlish, Peggy O'Neill
2020 J jnl
Remote. Sens.
Thierry Pellarin, Carlos Román-Cascón, Christian Baron, Rajat Bindlish, Luca Brocca, Pierre Camberlin, Diego Fernández-Prieto, Yann H. Kerr, Christian Massari, Geremy Panthou, Benoit Perrimond, Nathalie Philippon, Guillaume Quantin
2019 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Panpan Yao, Jiancheng Shi, Tianjie Zhao, Michael H. Cosh, Rajat Bindlish, Hui Lu
2019 J jnl
IEEE Geosci. Remote. Sens. Lett.
Donghai Zheng, Xin Wang, Rogier van der Velde, Mike Schwank, Paolo Ferrazzoli, Jun Wen, Zuoliang Wang, Andreas Colliander, Rajat Bindlish, Zhongbo Su
2019 C conf
IGARSS
Bin Fang, Venkat Lakshmi, Rajat Bindlish, Thomas J. Jackson, Pang-Wei Liu
2019 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Julian Chaubell, Peggy E. O'Neill, Simon H. Yueh, Jinzheng Peng, Roy Scott Dunbar, Steven Tsz K. Chan, Fan Chen, Jeffrey R. Piepmeier, Rajat Bindlish, Dara Entekhabi
2019 C conf
IGARSS
Rajat Bindlish, Steven Tsz K. Chan, Andreas Colliander, Yann Kerr, Thomas J. Jackson
2019 C conf
IGARSS
Dylan R. Boyd, Manuel A. Vega, Rajat Bindlish, Mehmet Kurum, James L. Garrison, Benjamin Nold, Ali Cafer Gürbüz, Bryan LaGrone, Orhan Eroglu, Robiulhossain Mdrafi, Jeffrey Piepmeier
2019 C conf
IGARSS
Steven Tze K. Chan, Rajat Bindlish
2019 C conf
IGARSS
James L. Garrison, Rajat Bindlish, Jeffrey Piepmeier, Rashmi Shah, Manuel A. Vega, David A. Spencer, Roger Banting, Cynthia M. Firman, Benjamin Nold, Kameron Larsen
2019 C conf
IGARSS
Andreas Colliander, Heather McNairn, Marc Thibeault, José Martínez-Fernández, Karsten H. Jensen, Jun Asanuma, Mark S. Seyfried, David D. Bosch, Patrick J. Starks, Chandra D. Holifield Collins, John H. Prueger, Thomas J. Jackson, Zhongbo Su, Simon H. Yueh, Steven Tsz K. Chan, Peggy O'Neill, Rajat Bindlish, Michael H. Cosh, Todd Caldwell, Jeffrey P. Walker, Aaron A. Berg
2019 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Jinzheng Peng, Sidharth Misra, Jeffrey R. Piepmeier, Emmanuel P. Dinnat, Simon H. Yueh, Thomas Meissner, David M. Le Vine, Kacie E. Shelton, Adam P. Freedman, Roy Scott Dunbar, Steven Tsz K. Chan, Rajat Bindlish, Giovanni De Amici, Priscilla N. Mohammed, Liang Hong, Derek Hudson, Thomas J. Jackson
2018 J jnl
Remote. Sens.
Bin Fang, Venkat Lakshmi, Rajat Bindlish, Thomas J. Jackson
2018 J jnl
IEEE Trans. Geosci. Remote. Sens.
Donghai Zheng, Rogier van der Velde, Jun Wen, Xin Wang, Paolo Ferrazzoli, Mike Schwank, Andreas Colliander, Rajat Bindlish, Zhongbo Su
2018 C conf
IGARSS
Richard O'Neill, Rajat Bindlish, Jeffrey Piepmeier, David M. Le Vine, Derek Hudson, Lihua Li, Gerado Cruz-Ortiz, David Olney
2018 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Rajat Bindlish, Michael H. Cosh, Thomas J. Jackson, Toshio Koike, Hideyuki Fujii, Steven Tsz K. Chan, Jun Asanuma, Aaron Berg, David D. Bosch, Todd Caldwell, Chandra D. Holifield Collins, Heather McNairn, José Martínez-Fernández, John H. Prueger, Tracy L. Rowlandson, Mark S. Seyfried, Patrick J. Starks, Marc Thibeault, Rogier van der Velde, Jeffrey P. Walker, Evan J. Coopersmith
2018 C conf
IGARSS
Beatriz Molero, Philippe Richaume, Yann H. Kerr, Olivier Merlin, Delphine J. Leroux, Michael H. Cosh, Rajat Bindlish
2018 C conf
IGARSS
Rajat Bindlish, Steven Chan, Thomas J. Jackson, Andreas Colliander, Yann Kerr
2018 C conf
IGARSS
Steven Chan, Rajat Bindlish, Peggy O'Neill, Thomas J. Jackson, Andreas Colliander, Simon Yueh
2018 C conf
IGARSS
Yann Kerr, Nemesio Rodriguez-Fernandez, Dara Entekhabi, Rajat Bindlish, Tong Lee, Simon Yueh, Gary S. E. Lagerloef, Jean-Pierre Wigneron, Jacqueline Boutin, Nicolas Reul, Lars Kaleschke
2018 C conf
IGARSS
James L. Garrison, Mehmet Kurum, Benjamin Nold, Jeffrey Piepmeier, Manuel A. Vega, Rajat Bindlish, Garett Pignotti
2018 C conf
IGARSS
Jeffrey R. Piepmeier, Jinzheng Peng, Sidharth Misra, Emmanuel P. Dinnat, Simon H. Yueh, Thomas Meissner, David M. Le Vine, Kacie E. Shelton, Adam P. Freedman, Roy Scott Dunbar, Steven Tsz K. Chan, Julian Chaubell, Rajat Bindlish, Giovanni De Amici, Priscilla N. Mohammed, Liang Hong
2018 C conf
IGARSS
Bin Fang, Venkat Lakshmi, Rajat Bindlish, Thomas J. Jackson
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Mariko S. Burgin, Andreas Colliander, Eni G. Njoku, Steven Tsz K. Chan, François Cabot, Yann H. Kerr, Rajat Bindlish, Thomas J. Jackson, Dara Entekhabi, Simon H. Yueh
2017 C conf
IGARSS
Subit Chakrabarti, Pang-Wei Liu, Jasmeet Judge, Anand Rangarajan, Roger D. De Roo, Rajat Bindlish, Andreas Colliander, Sidharth Misra, Scott Tripp, Barron Latham, Ross Williamson, Isaac Ramos, Thomas J. Jackson, Anthony W. England, Sanjay Ranka, Simon Yueh
2017 C conf
IGARSS
Rajat Bindlish, Thomas J. Jackson, Michael H. Cosh, Toshio Koike, X. Fuiji, Richard de Jeu, Steven Tsz K. Chan, Jun Asanuma, Aaron A. Berg, David D. Bosch, Todd Caldwell, C. Holyfield Collins, Heather McNairn, José Martínez-Fernández, John H. Prueger, Mark S. Seyfried, Patrick J. Starks, Zhongbo Su, Marc Thibeault, Jeffrey P. Walker
2017 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Fan Chen, Wade T. Crow, Andreas Colliander, Michael H. Cosh, Thomas J. Jackson, Rajat Bindlish, Rolf Reichle, Steven Tsz K. Chan, David D. Bosch, Patrick J. Starks, David C. Goodrich, Mark S. Seyfried
2017 C conf
IGARSS
Peggy O'Neill, Steven Tsz K. Chan, Rajat Bindlish, Thomas J. Jackson, Andreas Colliander, Roy Scott Dunbar, Fan Chen, Jeffrey Piepmeier, Simon Yueh, Dara Entekhabi, Michael H. Cosh, Todd Caldwell, Jeffrey P. Walker, Xiaoling Wu, Aaron A. Berg, Tracy L. Rowlandson, Anna Pacheco, Heather McNairn, Marc Thibeault, José Martínez-Fernández, A. Gonzalez-Zamora, Ernesto López-Baeza, Frederik Uldall, Mark S. Seyfried, David D. Bosch, Patrick J. Starks, Chandra D. Holifield Collins, John H. Prueger, Zhongbo Su, Rogier van der Velde, Jun Asanuma, Michael A. Palecki, Eric E. Small, Marek Zreda, Jean-Christophe Calvet, Wade T. Crow, Yann Kerr
2017 C conf
IGARSS
Steven Tsz K. Chan, Rajat Bindlish, Peggy O'Neill, Thomas J. Jackson, Julian Chaubell, Jeffrey Piepmeier, Roy Scott Dunbar, Andreas Colliander, Fan Chen, Dara Entekhabi, Simon Yueh, Michael H. Cosh, Todd Caldwell, Jeffrey P. Walker, Xiaoling Wu, Aaron A. Berg, Tracy L. Rowlandson, Anna Pacheco, Heather McNairn, Marc Thibeault, José Martínez-Fernández, Angel Gonzalez-Zamora, Ernesto López-Baeza, Frederik Uldall, Mark S. Seyfried, David D. Bosch, Patrick J. Starks, Chandra D. Holifield Collins, John H. Prueger, Zhongbo Su, Rogier van der Velde, Jun Asanuma, Michael A. Palecki, Eric E. Small, Marek Zreda, Jean-Christophe Calvet, Wade T. Crow, Yann Kerr
2017 C conf
IGARSS
Rajat Bindlish, Thomas J. Jackson, Steven Chan, Andreas Colliander, Yann Kerr
2017 C conf
IGARSS
Bin Fang, Venkat Lakshmi, Rajat Bindlish, Tom Jackson, Michael H. Cosh, Andreas Colliander
2017 C conf
IGARSS
Jinzheng Peng, Sidharth Misra, Jeffrey R. Piepmeier, Emmanuel P. Dinnat, Thomas Meissner, David M. Le Vine, Rajat Bindlish, Giovanni De Amici, Priscilla N. Mohammed, Simon H. Yueh
2017 J jnl
IEEE Trans. Geosci. Remote. Sens.
Jinzheng Peng, Sidharth Misra, Jeffrey R. Piepmeier, Emmanuel P. Dinnat, Derek Hudson, David M. Le Vine, Giovanni De Amici, Priscilla N. Mohammed, Rajat Bindlish, Simon H. Yueh, Thomas Meissner, Thomas J. Jackson
2017 C conf
IGARSS
Andreas Colliander, Thomas J. Jackson, Michael H. Cosh, Sidharth Misra, Rajat Bindlish, Jarrett Powers, Heather McNairn, Paul Bullock, Aaron Berg, Ramata Magagi, Peggy O'Neill, Simon Yueh
2017 J jnl
IEEE Geosci. Remote. Sens. Lett.
Andreas Colliander, Joshua B. Fisher, Gregory Halverson, Olivier Merlin, Sidharth Misra, Rajat Bindlish, Thomas J. Jackson, Simon Yueh
2017 C conf
IGARSS
Michael H. Cosh, Thomas J. Jackson, Patrick J. Starks, David D. Bosch, Chandra D. Holifield Collins, Mark S. Seyfried, John H. Prueger, Stanley Livingston, Rajat Bindlish
2016 J jnl
IEEE Trans. Geosci. Remote. Sens.
Steven Tsz K. Chan, Rajat Bindlish, Peggy E. O'Neill, Eni G. Njoku, Thomas J. Jackson, Andreas Colliander, Fan Chen, Mariko Burgin, Roy Scott Dunbar, Jeffrey Piepmeier, Simon Yueh, Dara Entekhabi, Michael H. Cosh, Todd Caldwell, Jeffrey P. Walker, Xiaoling Wu, Aaron A. Berg, Tracy L. Rowlandson, Anna Pacheco, Heather McNairn, Marc Thibeault, José Martínez-Fernández, Angel Gonzalez-Zamora, Mark S. Seyfried, David D. Bosch, Patrick J. Starks, David C. Goodrich, John H. Prueger, Michael A. Palecki, Eric E. Small, Marek Zreda, Jean-Christophe Calvet, Wade T. Crow, Yann Kerr
2016 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Pang-Wei Liu, Tara Bongiovanni, Alejandro Monsivais-Huertero, Jasmeet Judge, Susan C. Steele-Dunne, Rajat Bindlish, Thomas J. Jackson
2016 C conf
IGARSS
Sidharth Misra, Jeffrey R. Piepmeier, Jinzheng Peng, Priscilla N. Mohammed, Derek Hudson, Giovanni De Amici, Emmanuel P. Dinnat, David M. Le Vine, Rajat Bindlish, Thomas J. Jackson
2016 C conf
IGARSS
Rajat Bindlish, Thomas J. Jackson, Michael H. Cosh, Sushil Milak, Eni G. Njoku, Steven Tsz K. Chan, Mariko Burgin, Todd Caldwell, Aaron A. Berg, Heather McNairn, Jeffrey P. Walker, Yijian Zeng, Zhongbo Su, Marc Thibeault, Justino Martínez
2016 C conf
IGARSS
Peggy E. O'Neill, Steven Tsz K. Chan, Andreas Colliander, Roy Scott Dunbar, Eni G. Njoku, Rajat Bindlish, Fan Chen, Thomas J. Jackson, Mariko Burgin, Jeffrey Piepmeier, Simon Yueh, Dara Entekhabi, Michael H. Cosh, Todd Caldwell, Jeffrey P. Walker, Xiaoling Wu, Aaron A. Berg, Tracy L. Rowlandson, Anna Pacheco, Heather McNairn, Marc Thibeault, José Martínez-Fernández, Angel Gonzalez-Zamora, Mark S. Seyfried, David D. Bosch, Patrick J. Starks, David C. Goodrich, John H. Prueger, Michael A. Palecki, Eric E. Small, Marek Zreda, Jean-Christophe Calvet, Wade T. Crow, Yann Kerr
2016 C conf
IGARSS
Rajat Bindlish, Thomas J. Jackson, Jeffrey R. Piepmeier, Simon Yueh, Yann Kerr
2016 C conf
IGARSS
Thomas J. Jackson, Jean-Pierre Wigneron, Yann Kerr, Michael H. Cosh, Andreas Colliander, Jeffrey P. Walker, Rajat Bindlish
2015 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Dongyang Li, Tianjie Zhao, Jiancheng Shi, Rajat Bindlish, Thomas J. Jackson, Bin Peng, Meng An, Bo Han
2015 J jnl
IEEE Geosci. Remote. Sens. Lett.
Rajat Bindlish, Thomas J. Jackson, Michael H. Cosh, Tianjie Zhao, Peggy O'Neill
2015 J jnl
IEEE J. Sel. Top. Appl. Earth Obs. Remote. Sens.
Tianjie Zhao, Jiancheng Shi, Rajat Bindlish, Thomas J. Jackson, Yann H. Kerr, Michael H. Cosh, Qian Cui, Yunqing Li, Chuan Xiong, Tao Che
2014 J jnl
IEEE Trans. Geosci. Remote. Sens.
Delphine J. Leroux, Yann H. Kerr, Eric F. Wood, Alok Sahoo, Rajat Bindlish, Thomas J. Jackson
2014 J jnl
IEEE Trans. Geosci. Remote. Sens.
Delphine J. Leroux, Yann H. Kerr, Ahmad Al Bitar, Rajat Bindlish, Thomas J. Jackson, Béatrice Berthelot, Gautier Portet
2014 C conf
IGARSS
Dongyang Li, Tianjie Zhao, Jiancheng Shi, Rajat Bindlish, Tom Jackson, Bin Peng, Qiang Liu
2014 J jnl
IEEE Geosci. Remote. Sens. Lett.
YiHyun Kim, Thomas J. Jackson, Rajat Bindlish, Sukyoung Hong, Gunho Jung, Kyoungdo Lee
2013 C conf
IGARSS
Simon Yueh, Wenqing Tang, Alexander G. Fore, Julian Chaubell, Akiko Hayashi, Gary S. E. Lagerloef, Thomas J. Jackson, Rajat Bindlish
2013 C conf
IGARSS
YiHyun Kim, Sukyoung Hong, Kyoungdo Lee, Thomas J. Jackson, Rajat Bindlish, Gunho Jung, Soyeong Jang, Sang-il Na
2013 J jnl
IEEE Trans. Geosci. Remote. Sens.
Iliana Mladenova, Thomas J. Jackson, Rajat Bindlish, Scott Hensley
2013 C conf
IGARSS
Tianjie Zhao, Jiancheng Shi, Rajat Bindlish, Thomas J. Jackson, Yann Kerr, Qian Cui, Yunqing Li, Tao Che
2012 J jnl
IEEE Geosci. Remote. Sens. Lett.
YiHyun Kim, Thomas J. Jackson, Rajat Bindlish, Hoonyol Lee, Sukyoung Hong
2012 J jnl
IEEE Trans. Geosci. Remote. Sens.
Thomas J. Jackson, Rajat Bindlish, Michael H. Cosh, Tianjie Zhao, Patrick J. Starks, David D. Bosch, Mark S. Seyfried, Mary Susan Moran, David C. Goodrich, Yann H. Kerr, Delphine J. Leroux
2011 C conf
IGARSS
Tianjie Zhao, Lixin Zhang, Rajat Bindlish, Jiancheng Shi, Lingmei Jiang, Yunqing Li, Shaojie Zhao, Tao Zhang, Xinxin Li
2011 C conf
IGARSS
Rajat Bindlish, Thomas J. Jackson, Tianjie Zhao, Michael H. Cosh, Steven Tsz K. Chan, Peggy O'Neill, Eni G. Njoku, Andreas Colliander, Yann Kerr, Jiancheng Shi
2011 C conf
IGARSS
Thomas J. Jackson, Rajat Bindlish, Michael H. Cosh, Tianjie Zhao
2010 J jnl
IEEE Trans. Geosci. Remote. Sens.
Parag S. Narvekar, Georg C. Heygster, Thomas J. Jackson, Rajat Bindlish, Giovanni Macelloni, Justus Notholt
2010 J jnl
IEEE Trans. Geosci. Remote. Sens.
Dongryeol Ryu, Thomas J. Jackson, Rajat Bindlish, David M. Le Vine, Michael Haken
2010 J jnl
IEEE Trans. Geosci. Remote. Sens.
Thomas J. Jackson, Michael H. Cosh, Rajat Bindlish, Patrick J. Starks, David D. Bosch, Mark S. Seyfried, David C. Goodrich, Mary Susan Moran, Jinyang Du
2010 J jnl
IEEE Trans. Geosci. Remote. Sens.
Li Li, Peter W. Gaiser, Bo-Cai Gao, Richard M. Bevilacqua, Thomas J. Jackson, Eni G. Njoku, Christoph Rüdiger, Jean-Christophe Calvet, Rajat Bindlish
2009 J jnl
IEEE Geosci. Remote. Sens. Lett.
Rajat Bindlish, Thomas J. Jackson, Ruijing Sun, Michael H. Cosh, Simon Yueh, Steve J. Dinardo
2009 J jnl
IEEE Geosci. Remote. Sens. Lett.
Rajat Bindlish, Wade T. Crow, Thomas J. Jackson
2008 conf
IGARSS (2)
Thomas J. Jackson, Michael H. Cosh, Rajat Bindlish
2008 conf
IGARSS (2)
Rajat Bindlish, Thomas J. Jackson, Michael H. Cosh, Ruijing Sun, Simon Yueh, Steve J. Dinardo
2008 conf
IGARSS (1)
Jing Tao, Jiancheng Shi, Thomas J. Jackson, Jinyang Du, Rajat Bindlish, Lixin Zhang
2008 conf
IGARSS (2)
Simon Yueh, Steve J. Dinardo, Steven Tsz K. Chan, Eni G. Njoku, Thomas J. Jackson, Rajat Bindlish
2008 conf
IGARSS (2)
Dongryeol Ryu, Thomas J. Jackson, Rajat Bindlish, David M. Le Vine, Michael Haken
2007 C conf
IGARSS
Jiancheng Shi, Thomas J. Jackson, Jing Tao, Jinyang Du, Rajat Bindlish
2007 J jnl
IEEE Trans. Geosci. Remote. Sens.
Parag S. Narvekar, Thomas J. Jackson, Rajat Bindlish, Li Li, Georg C. Heygster, Peter W. Gaiser
2007 C conf
IGARSS
Parag S. Narvekar, Georg C. Heygster, Thomas J. Jackson, Rajat Bindlish
2007 C conf
IGARSS
Dongryeol Ryu, Thomas J. Jackson, Rajat Bindlish, David M. Le Vine, Michael Haken
2007 C conf
IGARSS
Thomas J. Jackson, Michael H. Cosh, Rajat Bindlish, Jinyang Du
2006 C conf
IGARSS
Rajat Bindlish, Thomas J. Jackson, Rogier van der Velde
2006 C conf
IGARSS
Li Li, Thomas J. Jackson, Peter W. Gaiser, Rajat Bindlish, J. Bobak, David Kunkee, Michael H. Cosh
2006 C conf
IGARSS
Michael H. Cosh, Thomas J. Jackson, Susan Moran, Rajat Bindlish
2005 J jnl
IEEE Trans. Geosci. Remote. Sens.
Thomas J. Jackson, Rajat Bindlish, Albin J. Gasiewski, B. Boba Stankov, Marian Klein, Eni G. Njoku, David D. Bosch, Thomas L. Coleman, Charles A. Laymon, Patrick J. Starks
2005 C conf
IGARSS
Thomas J. Jackson, Rajat Bindlish, Michael H. Cosh, Albin J. Gasiewski, B. Boba Stankov, Marian Klein, Bob L. Weber, Valery U. Zavorotny
2004 C conf
IGARSS
Fuqin Li, William P. Kustas, Thomas J. Jackson, Rajat Bindlish, John H. Prueger
2004 C conf
IGARSS
Thomas J. Jackson, Rajat Bindlish, Albin J. Gasiewski, B. Boba Stankov, Marian Klein, Eni G. Njoku, David D. Bosch, Tommy L. Coleman, Charles A. Laymon, Patrick J. Starks
2004 C conf
IGARSS
Rajat Bindlish, Wade T. Crow, Thomas J. Jackson
2003 C conf
IGARSS
Thomas J. Jackson, Rajat Bindlish, Marian Klein, Albin J. Gasiewski, Eni G. Njoku
2002 J jnl
IEEE Trans. Geosci. Remote. Sens.
Thomas J. Jackson, Albin J. Gasiewski, Anna Oldak, Marian Klein, Eni G. Njoku, Aleksandr Yevgrafov, Sven Christiani, Rajat Bindlish
2002 J jnl
IEEE Trans. Geosci. Remote. Sens.
Rajat Bindlish, Ana P. Barros
2001 J jnl
IEEE Trans. Geosci. Remote. Sens.
Rajat Bindlish, William P. Kustas, Andrew N. French, George R. Diak, John R. Mecikalski
tests/unit/test_smali_normalization.py
← Index tests/unit/test_smali_normalization.py python
"""Unit tests for smali semantic normalization.

Tests the three normalization levels (category, opcode, opcode_api),
opcode categorization, ACFG feature index mapping, and integration
with MinHash computation.
"""
import pytest

pytestmark = [pytest.mark.unit, pytest.mark.apk, pytest.mark.decompile]


class TestCategorizeOpcode:
    """Tests for opcode -> semantic category mapping."""

    def test_arithmetic(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("add-int") == "ALU"
        assert categorize_opcode("mul-long/2addr") == "ALU"
        assert categorize_opcode("neg-int") == "ALU"

    def test_data_movement(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("move-result") == "MOV"
        assert categorize_opcode("const/4") == "CONST"
        assert categorize_opcode("const-string") == "CONST"

    def test_memory_access(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("iget-object") == "LOAD"
        assert categorize_opcode("sput-wide") == "STORE"
        assert categorize_opcode("aget-byte") == "LOAD"

    def test_invocation(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("invoke-virtual") == "CALL"
        assert categorize_opcode("invoke-static") == "CALL"
        assert categorize_opcode("invoke-direct") == "CALL"

    def test_control_flow(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("if-eqz") == "BRANCH"
        assert categorize_opcode("goto") == "JMP"
        assert categorize_opcode("goto/16") == "JMP"
        assert categorize_opcode("return-void") == "RET"

    def test_comparison(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("cmp-long") == "CMP"
        assert categorize_opcode("cmpl-float") == "CMP"
        assert categorize_opcode("cmpg-double") == "CMP"

    def test_conversion(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("int-to-long") == "CONV"
        assert categorize_opcode("float-to-int") == "CONV"

    def test_object_type(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("new-instance") == "ALLOC"
        assert categorize_opcode("check-cast") == "TYPE"
        assert categorize_opcode("instance-of") == "TYPE"

    def test_exception_sync(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("throw") == "EXC"
        assert categorize_opcode("monitor-enter") == "SYNC"

    def test_unknown(self):
        from redb.extractors.decompiler.apk.smali_normalization import categorize_opcode
        assert categorize_opcode("nop") == "OTHER"


class TestNormalizeInstruction:
    """Tests for single instruction normalization at various levels."""

    def test_category_level(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        assert normalize_instruction("add-int v0, v1, v2", "category") == "ALU"
        assert normalize_instruction("invoke-virtual {p0}, Lcom/Foo;->bar()V", "category") == "CALL"
        assert normalize_instruction("return-void", "category") == "RET"

    def test_opcode_level_strips_width(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        # Width variants collapse to same base
        assert normalize_instruction("add-int v0, v1, v2", "opcode") == "add"
        assert normalize_instruction("add-long v0, v2, v4", "opcode") == "add"
        assert normalize_instruction("add-float v0, v1, v2", "opcode") == "add"
        # Addressing modes collapse too
        assert normalize_instruction("add-int/2addr v0, v1", "opcode") == "add"

    def test_opcode_api_invoke(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            "invoke-virtual {p0, v0}, Lcom/example/Foo;->bar(I)V"
        )
        assert result == "CALL Lcom/example/Foo;->bar(I)V"

    def test_opcode_api_invoke_no_ref(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        # If somehow no method ref is found, fallback to CALL
        assert normalize_instruction("invoke-virtual {v0}") == "CALL"

    def test_opcode_api_field_load(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            "iget-object v0, p0, Lcom/Foo;->mField:Ljava/lang/String;"
        )
        assert result == "LOAD Lcom/Foo;->mField:Ljava/lang/String;"

    def test_opcode_api_field_store(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            "iput-object v0, p0, Lcom/Foo;->mField:Ljava/lang/String;"
        )
        assert result == "STORE Lcom/Foo;->mField:Ljava/lang/String;"

    def test_opcode_api_androguard_field_format(self):
        """androguard uses space instead of colon in field references."""
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            "iget-object v0, p0, Lcom/Foo;->mField Ljava/lang/String;"
        )
        assert result.startswith("LOAD")
        assert "Lcom/Foo;->mField" in result

    def test_opcode_api_new_instance(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            "new-instance v0, Lcom/example/MyClass;"
        )
        assert result == "ALLOC Lcom/example/MyClass;"

    def test_opcode_api_const_string(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            'const-string v0, "hello world"'
        )
        assert result == 'CONST_STR "hello world"'

    def test_opcode_api_const_string_jumbo(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        result = normalize_instruction(
            'const-string/jumbo v0, "large string"'
        )
        assert result == 'CONST_STR "large string"'

    def test_opcode_api_fallback_to_category(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        # Non-special instructions fall back to category
        assert normalize_instruction("add-int v0, v1, v2") == "ALU"
        assert normalize_instruction("return-void") == "RET"
        assert normalize_instruction("nop") == "OTHER"

    def test_empty_input(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_instruction
        assert normalize_instruction("") == ""
        assert normalize_instruction("   ") == ""


class TestNormalizeMethodBody:
    """Tests for full method body normalization."""

    def test_filters_directives_labels_comments(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_method_body
        body = """\
.locals 2
# comment
:label_0
add-int v0, v1, v2
.line 42
invoke-virtual {p0}, Lcom/Foo;->bar()V
return-void
"""
        result = normalize_method_body(body, "category")
        assert result == ["ALU", "CALL", "RET"]

    def test_opcode_api_preserves_api_refs(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_method_body
        body = """\
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/Foo;->setX(I)V
iget-object v1, p0, Lcom/Foo;->name:Ljava/lang/String;
return-void
"""
        result = normalize_method_body(body, "opcode_api")
        assert result[0] == "CONST"
        assert result[1] == "CALL Lcom/Foo;->setX(I)V"
        assert result[2] == "LOAD Lcom/Foo;->name:Ljava/lang/String;"
        assert result[3] == "RET"

    def test_empty_body(self):
        from redb.extractors.decompiler.apk.smali_normalization import normalize_method_body
        assert normalize_method_body("") == []
        assert normalize_method_body("\n\n") == []


class TestNormalizationWithMinHash:
    """Integration tests: normalization + MinHash computation."""

    def test_minhash_returns_signature(self):
        from redb.extractors.decompiler.apk.method_extractor import compute_minhash
        body = """\
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/Foo;->bar(I)V
iget-object v1, p0, Lcom/Foo;->name:Ljava/lang/String;
add-int v2, v0, v1
return-void
"""
        sig = compute_minhash(body)
        assert sig is not None
        assert len(sig) == 64
        assert all(0 <= v < 256 for v in sig)

    def test_minhash_register_invariance(self):
        """Same operations with different registers should produce identical signatures."""
        from redb.extractors.decompiler.apk.method_extractor import compute_minhash
        body_a = """\
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/Foo;->bar(I)V
iget-object v1, p0, Lcom/Foo;->name:Ljava/lang/String;
add-int v2, v0, v1
return-void
"""
        body_b = """\
const/4 v3, 0x0
invoke-virtual {p1, v3}, Lcom/Foo;->bar(I)V
iget-object v4, p1, Lcom/Foo;->name:Ljava/lang/String;
add-int v5, v3, v4
return-void
"""
        sig_a = compute_minhash(body_a)
        sig_b = compute_minhash(body_b)
        assert sig_a == sig_b

    def test_minhash_width_invariance(self):
        """Width variants of same operations should produce identical signatures."""
        from redb.extractors.decompiler.apk.method_extractor import compute_minhash
        body_int = """\
add-int v0, v1, v2
sub-int v3, v0, v1
mul-int v4, v0, v3
return v4
"""
        body_long = """\
add-long v0, v2, v4
sub-long v6, v0, v2
mul-long v8, v0, v6
return-wide v8
"""
        sig_int = compute_minhash(body_int)
        sig_long = compute_minhash(body_long)
        # Both normalize to ALU, ALU, ALU, RET -> identical
        assert sig_int == sig_long

    def test_minhash_different_apis_differ(self):
        """Methods calling different APIs should produce different signatures."""
        from redb.extractors.decompiler.apk.method_extractor import compute_minhash
        body_a = """\
const/4 v0, 0x0
invoke-virtual {p0, v0}, Lcom/crypto/AES;->encrypt([B)[B
invoke-virtual {v0}, Ljava/io/OutputStream;->write([B)V
return-void
"""
        body_b = """\
const/4 v0, 0x0
invoke-virtual {p0, v0}, Ljava/lang/String;->length()I
invoke-virtual {v0}, Ljava/io/PrintStream;->println(I)V
return-void
"""
        sig_a = compute_minhash(body_a)
        sig_b = compute_minhash(body_b)
        assert sig_a != sig_b

    def test_minhash_too_few_instructions(self):
        from redb.extractors.decompiler.apk.method_extractor import compute_minhash
        assert compute_minhash("return-void\nnop") is None


class TestACFGBlockFeatures:
    """Tests for per-block ACFG feature extraction via smali_cfg."""

    def test_simple_linear_method(self):
        from redb.extractors.decompiler.apk.smali_cfg import compute_cfg_metrics
        body = """\
add-int v0, v1, v2
invoke-virtual {p0}, Lcom/Foo;->bar()V
return-void
"""
        metrics = compute_cfg_metrics(body)
        assert metrics.block_count >= 1
        assert len(metrics.block_features) == metrics.block_count
        # Each feature vector has 8 elements
        for feat in metrics.block_features:
            assert len(feat) == 8

    def test_branching_method_has_multiple_blocks(self):
        from redb.extractors.decompiler.apk.smali_cfg import compute_cfg_metrics
        body = """\
const/4 v0, 0x0
if-eqz v0, :cond_0
invoke-virtual {p0}, Lcom/Foo;->a()V
goto :goto_0
:cond_0
invoke-virtual {p0}, Lcom/Foo;->b()V
:goto_0
return-void
"""
        metrics = compute_cfg_metrics(body)
        assert metrics.block_count >= 3
        assert len(metrics.block_features) == metrics.block_count

    def test_feature_vector_arithmetic_count(self):
        from redb.extractors.decompiler.apk.smali_cfg import compute_cfg_metrics
        body = """\
add-int v0, v1, v2
sub-int v3, v0, v1
mul-int v4, v0, v3
return v4
"""
        metrics = compute_cfg_metrics(body)
        assert len(metrics.block_features) == 1
        feat = metrics.block_features[0]
        # feat[0] = instr_count (4), feat[1] = arithmetic (3)
        assert feat[0] == 4
        assert feat[1] >= 3  # 3 ALU ops

    def test_feature_vector_call_count(self):
        from redb.extractors.decompiler.apk.smali_cfg import compute_cfg_metrics
        body = """\
invoke-virtual {p0}, Lcom/A;->a()V
invoke-static {v0}, Lcom/B;->b()V
return-void
"""
        metrics = compute_cfg_metrics(body)
        feat = metrics.block_features[0]
        # feat[4] = call count
        assert feat[4] == 2